전체 글(131)
-
Spring Security - 익명 사용자 인증, AnonymousAuthenticationFilter
AnonymousAuthenticationFilter 플로우 Spring Security는 인증을 받지않은 사용자도 익명 사용자 인증객체를 생성하여 관리한다. AnonymousAuthenticationFilter는 인증 객체가 SecurityContext에 존재하지 않는 경우 AnonymousAuthenticationToken을 생성하고 SecurityContext에 저장한다. 이렇게 SecurityContext에서 관리가 되면, 후에 isAnonymous()와 isAuthenticated()로 인증 사용자와 익명 사용자를 구분할 수 있게된다. 익명 인증객체를 세션에 저장하지는 않는다.
2021.04.15 -
Spring Security - Remember me, 자동 로그인 API, RememberMeAuthenticationFilter
사용 예제 1 2 3 4 5 6 7 http .rememberMe() .rememberMeParameter("remember") // rememberme 파라미터. 기본값은 remember-me .tokenValiditySeconds(3600) // 유효기간 설정. 기본값은 14일 .alwaysRemember(true) // 사용자가 remember me를 체크하지 않아도 true이면 항상 remember me 작동. .userDetailsService(userDetailsService) // 사용자 정보를 조회함. 정보를 어디에 저장했느냐에 따라 다양한 구현체 존재. ; Colored by Color Scripter cs RememberMeAuthenticationFilter 흐름 RememberMeA..
2021.04.15 -
Spring Security - Logout 흐름, LogoutFilter
로그아웃 요청이 온다 LogoutFilter가 요청을 받아 RequestMatcher로 요청정보 매칭을 확인한다. 요청정보가 매칭되면 SecurityContext에서 인증객체를 가져와 LogoutHandler를 실행한다. Spring Security는 이미 여러 핸들러를 만들어놨고, 각 핸들러에서 로그아웃시 필요한 세션 무효화, 쿠키삭제, SecurityContext에서 인증객체 삭제 등 기본 작업을 수행한다. 이 때, 사용자가 정의한 핸들러(addLogoutHandler())도 같이 수행된다. 로그아웃이 성공하면 성공 핸들러(logoutSuccessHandler())가 수행된다.
2021.04.15 -
Spring Security - Logout API
사용 예제 123456789101112131415161718http .logout() // 로그아웃 기능 작동 .logoutUrl("/logout") //로그아웃 페이지 .logoutSuccessUrl("/login") // 로그아웃 성공 후 이동할 URL .deleteCookies("JSESSIONID", "remember-me") // 로그아웃 후 삭제할 쿠키 .addLogoutHandler(new LogoutHandler() { @Override public void logout(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) { //로그아웃시 추가적..
2021.04.15 -
SPRING SEQURITY - Form Login 인증 흐름, AuthenticationFilter
로그인 요청을 한다. AuthenticationFilter가 요청을 받아, RequestMatcher를 생성해 요청 정보가 매칭되는지 확인한다. 요청정보가 매칭된다면 인증객체(Authentication)을 생성한다. AuthenticationManager에게 인증 객체를 이용해 인증 요청을 하고 AuthenticationManager는 AuthenticationProvider에게 인증 요청을 위임한다. AuthenticationProvider는 인증 객체를 분석하여 username, password를 보고 인증 성공 여부를 판단한다. 인증이 성공되면 AuthenticationManager는 인증객체를 새로 생성한다. 이 때, 인증객체는 사용자 정보와, 권한 정보를 가진다. 해당 인증객체를 Security..
2021.04.15 -
SPRING SEQURITY - Form Login 인증 API
사용 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 package io.security.basicsecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfig..
2021.04.15