본문 바로가기

Spring Boot

(39)
Google JavaScript SDK, Fetherated Identity 서버에 의존하지않고 웹 브라우저 위에서 자바스크립트를 이용해서 구글로 로그인하는 방법! access token를 이용하면 구글의 서비스를 마치 내 서비스인 것처럼 API를 이용해서 제어 할 수 도 있어요. Federated Identity(연합된 식별자)라고 부릅니다. Google JavaScript SDK 를 이용해서 Fetherated Identity를 구현할 것입니다. OAuth :표준화된 인증 방법이 사용되긴 합니다만 Google JavaScript SDK를 이용하면 이런 복잡하게 하지 않아도 된다. 인증 일반적인 인증서비스 mine(내 서비스) User(내 서비스 사용자) id, password로 인증한다 Federated Identity OAuth방식으로 인증을 구현 할 거다. Resource..
oauth2, code, acess token oauth 생태계 용어 Resource owner client Resource Server Resource Server의 데이터를 쓰기위해서 client를 Resource Server에 등록합니다. client는 Resource Server로 부터 client ID, client secret을 발급 받는다. 그러면 client는 id, secret 정보를 잘 저장해둔다. 특히 둘 중에 secret 정보은 절대 노출 되면 안됨. 만약 노출되면 내 서비스는 끝나는 거임. 이제 시작 Resource Server에게 client(내 서비스)가 부탁을 해야한다. '내가 어떠 어떠한 정보를 사용하겠다고 허락받아주세요' 라고 부탁해야 한다. 그러면 Resource owner 바로 Resource Server에게 자동..
스프링 시큐리티 롤 권한 가져오기 @Override public Collection
Spring Boot - Security https://github.com/Moonseonhyeon/spring-boot-security 새 프로젝트 만들기 아래와 같은 컨트롤러 만들고 나서 실행하면 톰켓이 데이터베이스를 메모리에 띄우기 때문에 지금 실행하면 디비없어서 아래와 같이 오류. 그래서 디비 설정해보자! application. 파일 확장자를 yml로 수정! 무조건 자동완성! (띄어쓰기 주의해야하니까) 더보기 server: port: 8080 servlet: context-path: / encoding: charset: UTF-8 enabled: true force: true spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost..
게시글 보기, 상세글 보기, 수정, 삭제 버튼(권한 있어야함. 없으면 Exception 던짐) 게시글 보기 index.jsp 타이틀을 누르면 해당글의 상세보기로 간다. PostController.java 컨트롤러에 상세보기 누를때 id값으로 이동하게 한다. 이때 model을 이용하면 view까지 dto를 들고 갈 수 있음. PostDetailRespDto 모델명+하는일+리퀘스트or리스펀스+Dto dto는 컨트롤러 패키지안에서 만든다. model도 아니고 데이터를 왔다갔다 하기때문에 더보기 안드로이드는 PostApiController로 만들고 /v1/posts/로 짠다 만약 v2 넘어가더라도 v1은 남겨뒀다가 나중에 완벽해지면 삭제를 한다. PostService.java 서비스의 함수 이름은 가독성 때문에 매우 중요하다. post.xml Controller에 API 글 상세보기는 Post하나의 테이..
글쓰기/주소 설계/@Autowired DI하는 방법3가지 User 관련(로그인,회원가입,로그아웃)부분을 이미 만들어놔서 어느 정도 복사와 붙여넣기로 빠르게 만들 수 있다. saveForm은 joinFrom.jsp를 복붙해서 알맞게 고친다. post.js는 user.js를 가져오며 알맞게 고친다. 그리고 model을 보면 userId가 필요하기 때문에 hidden값으로 principal에 담겨있던 id값을 가져온다. PostController에서 /post는 restAPI를 이용해서 주소를 만들때 사용하는 방법이다. RestAPI주소 설계방법 Post 주소에 명사만 들어와요. 동사말고! 예)delete와 같은 동사는 안들어 옴. Get select 1건 /post/{id} Get select All /posts Post insert /post Put update..
InterceptorHandler HM (HandlerMapping) TestController 생성 @RestController는 @ResponseBody를 안달아도 된다. role은 권한이다. user테이블에 role컬럼 추가하자 더보기 use spring; select * from user; DROP table comment; DROP table post; DROP table user; CREATE TABLE user( id int auto_increment primary key, username varchar(100) unique not null, password varchar(100) not null, email varchar(100), profile varchar(200), role varchar(20), createDate ..
spring boot - blog - 회원가입 https://github.com/Moonseonhyeon/SpringBoot-blog/commits/master DataSourceConfig.java 필요 없어서 삭제함! TestController를 controller 패키지에 이름(IndexController)을 바꾼 뒤 넣고 패키지 생성 model service util SQL에 만들어뒀던 테이블을 참고해서 model 작성 header와 footer 만들기 header.jsp 더보기 zzz blog 로그인 회원가입 footer.jsp 더보기 Create by Cos 2020-05-29 🏴 부산 진구 중앙대로 708 📞 010-2222-8888 index.jsp에 include한다. 더보기 Index 페이지입니다. get 빼고 웹브라우저로 스프링서..