Spring Security - 정수원 2일차
                                            
                                                
                                                
                                                
                                                
                                                
                                                 7659 단어  spring securityspring security
                    
5. 인증 API - Logout, LogoutFilter
- request(/logout) 보내면
 - Server에서는 세션 무효화, 인증토큰 삭제, 쿠키정보 삭제, 로그인 페이지로 리다이렉트 해줌
 
@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .anyRequest().authenticated();
        http
                .formLogin();
        http
                .logout()
                .logoutUrl("/logout")
                .logoutSuccessUrl("/login")
                .addLogoutHandler(new LogoutHandler() {
                    @Override
                    public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
                        HttpSession session = request.getSession();
                        session.invalidate();
                    }
                })
                .logoutSuccessHandler(new LogoutSuccessHandler() {
                    @Override
                    public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
                        response.sendRedirect("/login");
                    }
                })
                .deleteCookies("remember-me");
    }
- LogoutFilter → AntPathRequestMatcher(/logout) 실패시 chain.doFilter → Authentication → SecurityContext → SecurityContextLogoutHandler
 - 마지막 Handler 에서 세션무효화 ,쿠키 삭제, SecurityContextHandler.clearContext()
 
6. 인증 API - Remember Me 인증
- 세션이 만료되고 웹 브라우저가 종료된 후에도 어플리케이션이 사용자를 기억하는 기능
 - Remember-Me 쿠키에 대한 Http 요청을 확인한 후 토큰 기반 인증을 사용해 유효성을 검사하고 토큰이 검증되면 사용자는 로그인 된다.
 - 사용자 라이플 사이클
- 인증 성공(Remember-Me쿠키 설정)
 - 인증 실패(쿠키가 존재하면 쿠키 무효화)
 - 로그아웃(쿠키가 졵하면 쿠키 무효화)
 
 
.rememberMe()
.rememberMeParameter("remember") // 기본 파라미터명은 remember-me
.tokenValiditySeconds(3600) // Default는 14일
.userDetailsService(userDetailsService); 
7. 인증 API - RememberMeAuthenticationFilter
- 인증 객체가 없는경우
 - remember-me 쿠키를 가지고 있는 경우
 - jsession 쿠키가 없고 remember-me 쿠키가 있을 경우 발동
 
TokenBasedRememberMeServices: 유효기간 설정해서 가지고있음PersistenTokenBasedRememberMeServices: DB에 저장하여 가지고있음
Author And Source
이 문제에 관하여(Spring Security - 정수원 2일차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@eldehd9898/Spring-Security-정수원-2일차저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)