스프링/시큐리티
-
스프링부트 시큐리티 04 - 최종 JWT 서버 구축스프링/시큐리티 2021. 9. 11. 16:20
유투버 '데어프로그래밍'님 강의 참조 이제 JWT 로그인 요청으로 클라이언트가 토큰을 받았고 클라이언트가 자기 개인정보를 접근하기위해 다시 재 로그인을 하는게 아니라 받은 JWT를 통해 전자서명을하고 개인정보에 접근하도록 만들어보자 JWT토큰을 받고 그것을 들고 요청할때 확인작업을 해주는 필터가 필요 하다. JwtAuthorizationFilter → 시큐리티는 기본적으로 BasicAuthenticationFilter라는것을 들고 있고 이 필터는 권한이나 인증이 필요한 특정 주소를 요청하게되면 발동한다. 즉 권한이나 인증이 필요한 주소가 아니면 타지 않는다. 그러므로 권한과 인증이 필요한 주소 요청시에는 이 필터를 타게하고 거기에서 JWT토큰을 같이 검사한다. public class JwtAuthoriz..
-
스프링부트 시큐리티 04 - JWT 토큰 세팅까지의 개념스프링/시큐리티 2021. 9. 9. 15:30
유투버 '데어프로그래밍'님 강의 참조 01 - 세션이란? 클라이언트가 어떠한 요청을 최초로 하게되면 서버에서는 응답시에 HTTP 헤더에 쿠키를 담고 그 쿠기가 세션 ID값을 든 채로 클라이언트에게 응답이 가게 된다. 클라이언트는 브라우저상에 이 응답+세션값을 자동으로 들고 머무르게 되는 것이다. 클라이언트가 최초 이후에 두번째 요청을 하게되면 이 세션값을 포함해서 요청을 하게 된다. 서버는 이 세션값을 보고 유효성을 검사하게 되는 것. 세션은 계속 유지되지 않는다 1) 서버가 세션을 끊을 수도 있고 2) 사용자가 브라우저를 닫게되면 없어 진다. (브라우저가 닫히면 브라우저상의 세션은 날라가고 서버에서는 보통 30분정도 그 값이 유지 된다) 세션은 보통 인증(로그인)을 위해 많이 사용 된다. 하지만 단점이..
-
스프링부트 시큐리티 03 - OAuth (구글/페이스북/네이버 로그인)스프링/시큐리티 2021. 9. 8. 13:47
유투버 '데어프로그래밍'님 강의 참조 01 - 구글 API 아래 주소를 통해 API 생성을 하자 https://console.cloud.google.com/projectselector2/apis/dashboard?pli=1&supportedpurview=project&project=&folder=&organizationId= Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 프로젝트 생성 → 오스 외부 사용 동의(간단히 프로필 작성) → 사용자 인증 정보 → 사용자 인증 정보 만들기 → 오스 클라이언트 ID 만들기 → 승인된 리다이렉션 URI 주소 세팅(http://loc..
-
스프링부트 시큐리티 02 - 시큐리티 기본(회원가입/로그인/권한처리)스프링/시큐리티 2021. 9. 7. 22:21
유투버 '데어프로그래밍'님 강의 참조 01 - 로그인 페이지 설정 1) IndexController에 @Responsebody를 다 지운 후 템플릿 세팅 @GetMapping("/loginForm") public String loginForm() { return "loginForm"; } loginForm.html Login Page Login 02 - 로그인 진행을 위한 모델 세팅 및 DB테스트 모델 세팅 @Data @AllArgsConstructor @NoArgsConstructor @Builder @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String..
-
스프링부트 시큐리티 01 - 환경설정스프링/시큐리티 2021. 9. 7. 20:05
유투버 '데어프로그래밍'님 강의 참조 01 - 기본 환경 세팅 1) DB 세팅 Create Schema를 통해 간단히 만들어 주자. 2) 프로젝트 세팅 Spring Boot DevTools -> 파일변경이되면 자동 재실행하여 프로젝트 갱신 Lombok -> getter/setter/생성자 등 어노테이션으로 쉽게 구현 Spring Data JPA -> DB를 JPA를 통해서 만져 ORM을 기반으로 구현 MySQL Driver -> MySQL과 연동해서 사용 가능 Spring Security -> 보안과 관련된 라이브러리르 제공 Spring Web -> WEB MVC 패턴의 기본적인 요소를 가지고 있고 내장형 톰켓을 컨테이너로 기본 탑재 Mustache - > 템플릿 엔진의 하나로 다양한 언어를 지원하며 J..