📝 동시세션 제어 동일한 계정으로 들어왓을 때 동시 세션 제어 http.sessionManagement() // 세션 관리 기능 작동 .maximumSession(1) // 최대 허용 가능 세션 수, -1: 무제한 로그인 세션 허용 .maxSessionPreventsLogin(true) // 동시로그인 차단, false: 기존 세션 만료(default) .invalidSessionUrl("/invalid) // 세션이 유효하지 않을 때 이동 할 페이지 .expiredUrl("/expired") //세션 만료된 경우 이동 할 페이지 .sessionFixation().changeSessionId() // 인증 성공 시 세션은 그대로두고 세션아이디를 변경한다 📝 세션고정보호 인증에 성공할 때마다 새로운 세션을..
AnonymousAuthenticationFilter 익명사용자 인증 처리 필터 AnonymousAuthenticationFilter 는 null아 아니라 별도의 익명사용자를 만들어 처리한다. 인증객체를 세션에 저장하지 않는다 인증을 받게되면 세션에 user객체를 저장한다. 저장 후, 어떤 자원에 접근하려고하면 인증객체가 존재하는지 or null인지 체크하여 null이면 접근을 못하게하고 null이 아니면 인증된걸로 인식하여 접근하게한다 익명객체 존재여부 판단(익명객체는 보통 SecurityCotext에 있다) 존재한다. 그 다음필터 실행 존재하지 않는다. -> 인증객체 생성 (AnonymousAuthenticationToken) 테스트 @Configuration @EnableWebSecurity @Re..
📝 Remember Me 인증 세션이 만료되고 웹 브라우저가 종료된 후에도 어플리케이션이 사용자를 기억하는 기능 Remember-Me 쿠키에 대한 Http 요청을 확인한 후 토큰기반 인증을 사용해 유효성을 검사 후 토큰이 검증되면 사용자가 로그인 된다. http.rememberMe() // remember 기능 작동 package kyh.security.basicsecurity; @Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityConfig extends WebSecurityConfigurerAdapter { private final UserDetailsService userDetailsService; @Over..
| Logout 처리 http.logout() : 로그아웃 기능 작동 http.logout() // 로그아웃 처리 .logoutUrl("/logout") // 로그아웃 처리 URL .logoutSuccessUrl("/login") // 로그아웃 성공 후 이동페이지 .deleteCookies("JSESSIONID“, "remember-me") // 로그아웃 후 쿠키 삭제 .addLogoutHandler(logoutHandler()) // 로그아웃 핸들러 .logoutSuccessHandler(logoutSuccessHandler()) // 로그아웃 성공 후 핸들러 LogoutFilter POST방식으로 처리한다 AutPathRequestMatcher(/logout) 로 logout 링크와 일치하지 않으면 ..