Spring Security는 기본적으로 DefaultLogoutPageGeneratingFilter를 통해 로그아웃 페이지를 제공하며 GET /logout으로 접근이 가능하다. 로그아웃 실행은 기본적으로 POST /logout으로만 가능하며 csrf 기능을 비활성화 할 경우 또는 RequestMatcher 를 사용할 경우 GET, PUT, DELETE 모두 가능하다. 로그아웃 필터를 거치지 않고 MVC에서 커스텀으로 구현할 수 있으며, 로그인 페이지를 커스텀으로 구현했을 경우 로그아웃 또한 커스텀으로 구현해야 한다. 아래는 logout config 설정들이다. @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) th..
Spring Security

Spring Security에서 제공하는 기능 중 RememberMe 라는 기능이 있다. 이름에서부터 알수 있듯이 처음 인증에 성공하면 일정 시간동안 이 토큰이 있을 경우 자동 로그인 처리를 해주는 기능이다. 전체적인 흐름은 아래와 같다.최초 로그인을 했을 때 인증에 성공할 경우 RememberMe가 체크되어있는지 확인RememberMe가 설정 되어있을 경우 쿠키를 만들어서 클라이언트로 전달이후 클라이언트는 이 쿠키를 가지고 서버로 요청을 보낸다아래는 SecurityConfig에서 RemeberMe 관련 설정들이다.@EnableWebSecurity@Configurationpublic class SecurityConfig { @Bean public SecurityFilterChain securi..

이번 포스트는 sprint security 의존성을 추가한 뒤 설정하는 기본적인 config 설정과 그에 대한 실습이다. 일단 나는 Spring Boot 3.2.5, Spring Security 6x, Java 17을 사용하고 빌드는 gradle로 진행했다. spring security 의존성 추가implementation 'org.springframework.boot:spring-boot-starter-security' 단지 의존성만 추가했을 뿐인데 Spring Security는 아래 4가지 설정을 지원한다.기본적으로 모든 요청에 대하여 인증 여부를 검증하고 인증이 승인되어야 자원에 접근이 가능인증 방식은 formLogin 방식과 httpBasic 방식을 제공인증을 시도할 수 있는 로그인 페이지가 자동..