![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdWQKB%2FbtsafQg9c8T%2FeEaDxKK7BHJaqqESVPtr71%2Fimg.png)
Spring Boot 기반으로 개발하는 Spring Security : 동시 세션 제어, 세션 고정 보호, 세션 정책
2023. 4. 15. 11:29
무조건 따라하기/Spring Boot 기반 Security
동시 세션 제어 최대 허용 세션이 초과했을 경우 시큐리티는 2개의 설정이 있다. sessionManagement > maxSessionsPreventsLogin() 를 사용하여 기본값은 false로 기존 세션을 만료시키고 true는 현재 접속하는 세션을 차단한다. http.sessionManagement() .maximumSessions(1) // 최대 허용 가능 세션 수, -1 : 무제한 .maxSessionsPreventsLogin(false) // 동시 로그인 차단함, false : 기존 세션 만료 (default) .expiredUrl("/expired") // 세션이 만료된 경우 이동할 페이지 테스트 maxSessionsPreventsLogin를 true로 설정해서 초과하는 세션을 차단할 경우 ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3JdcY%2Fbtsak3zflpm%2FVVcULhOEEzoIK90BuLM2Z1%2Fimg.png)
Spring Boot 기반으로 개발하는 Spring Security : AnonymousAuthenticationFilter
2023. 4. 15. 11:13
무조건 따라하기/Spring Boot 기반 Security
AnonymousAuthenticationFilter 이란? 익명사용자 인증 처리 필터 익명사용자와 인증 사용자를 구분해서 처리하기 위한 용도로 사용 화면에서 인증 여부를 구현할 때 isAnonymous() 와 isAuthenticated() 로 구분해서 사용 인증객체를 세션에 저장하지 않는다 이미지로 플로우 확인 사용자가 자원에 접근하면 AnonymousAuthenticationFilter가 요청을 받는다. SecurityContextHolder(이하 SC)에 인증객체가 존재하는지 확인한다. 인증객체가 있다면 다음필터가 진행 인증객체가 없다면 AnonymousAuthenticationToken(익명사용자 토큰)을 생성해 SC에 저장 한다. (사용인증객체를 세션에 저장하지 않는다) SC에 저장한 Anon..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUErKm%2Fbtr93lAovQA%2FbOghEGK3ZRJaLk1Or0kjnK%2Fimg.png)
Spring Boot 기반으로 개발하는 Spring Security : RememberMeAuthenticationFilter
2023. 4. 13. 22:31
무조건 따라하기/Spring Boot 기반 Security
RememberMe 인증 과정 간단 설명 RememberMeAuthenticationFilter SecurityContext 안에 Authentication이 없고 RememberMe 쿠키가 있는 경우 RememberMeAuthenticationFilter가 동작하게 된다. RememberMeService RememberMeService는 구현체가 두개가 있다. TokenBasedRememberMeServices : 메모리에서 저장한 토큰과 사용자가 요청한 토큰을 비교해서 인증처리한다. PersistentTokenBasedRememberMeServices : DB에 토큰을 저장하고 요청한 토큰과 비교해서 인증처리한다. RememberMe 인증 과정 코드 1. JSESSIONID이 있으면 아무리 새로고침을..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtdTiw%2Fbtr91ytHB2k%2FXukS2r5xDlpbSmFH26QUYk%2Fimg.png)
Spring Boot 기반으로 개발하는 Spring Security : Remember Me 인증
2023. 4. 13. 21:48
무조건 따라하기/Spring Boot 기반 Security
Remember Me 설정 @Configuration @EnableWebSecurity public class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { //region rememberMe http .rememberMe() .rememberMeParameter("remember") // 기본 파라미터명은 remember-me .tokenValiditySeconds(3600) // 유지 시간 Default 는 14일 .alwaysRemember(false) // 리멤버 미 기능을 활성화하지 않아도 계속 실행할 것인지 //endregion ; return http.build..