목록SpringSecurity (5)
seok의 패치노트

*RememberMeAuthenticationFilter 가 동작하기 위해서는 두가지 조건 이 있다. 1. Authentication 인증객체가 null일때 다시금 인증을 유지하기 위해 동작한다. (인증객체가 null이라는거 뜻은 사용자의 세션이 만료되거나 세션이 끊겨서 세션안에 있는 SecurityContext 안에서 Authentication 인증 객체를 더이상 찾지 못할때를 말한다.) 2. 사용자가 request header에 remember me 쿠키를 가지고 오는경우 RememberMeAuthenticationFilter 동작방식 *전제조건 사용자의 세션은 만료되었고 , remember me 쿠키를 가지고 있는 상태이다. 1. 사용자 요청이 들어옴 2. RememberMeService 인터페이스..

Remember Me - 세션이 만료되거나 웹 브라우저가 종료된 후에도 어플리케이션이 사용자를 기억하는 기능 - 서버가 사용자 정보를 Response 헤더에 쿠키를 담아 클라이언트에게 전달 - 쿠키를 이용해 토큰기반의 인증을 시도하고 사용자가 가지고 있는 쿠키의 유효성을 검사하고 그 토큰이 검증이 되면 자동로그인 됨 (클라이언트가 서버로 request header에 "remember-me" 라는 이름을 가진 쿠키를 보내면 서버에서 쿠키를 디코드 하고 파싱해서 username , password 를 추출해서 사용자 계정을 얻고 이 계정으로 인증을 시도함 , 그리고나서 인증에 성공하게 되면 클라이언트는 다시 JSESSIONID가 생김) **크롬 확장프로그램 중에 editThisCookie 라는 프로그램을 이..

Logout API http.logout() //로그아웃 기능이 동작함 .logoutUrl("/logout") //로그아웃 처리 URL ,form 태그의 action 부분 .logoutSuccessUrl("/login") //로그아웃 성공 후 이동페이지 .deleteCookies("JSESSIONID" , "쿠키명") //로그아웃 후 쿠키 삭제 .addLogoutHandler(logoutHandler()) //로그아웃 핸들러 (로그아웃시 스프링 시큐리티에서 기본적으로 logoutHandler 구현체가 세션 및 인증토큰을 삭제하는등 의 일을 하는데 이 외의 일을 더 하고싶을때 쓰는 메소드) .logountSuccessHandler(logoutSuccessHandler()) //로그아웃 성공 후 핸들러 Lo..

인증 시나리오 순서 1. 인증이 안된 사용자가 특정 url로 접근 2. 서버에서는 인증이 안된유저로 판단될 경우 로그인 페이지로 리다이렉트 시킴 3. 사용자가 로그인 시도 4. 인증이 되었으면 세션을 생성하고 그 세션안에 인증토큰(Authentication 타입의 클래스 객체 , Security Context)을 생성 시킨후 저장함 5. 사용자는 다시한번 특정 url 접근시 세션안에 저장되어 있는 인증 토큰으로 리소스 에 접근하고 스프링 시큐리티는 세션에 저장된 인증토큰 을 보고 인증을 유지함 인증 API 에 대해 살펴보기 - Form Login 인증 http.formLogin() // form로그인 인증 기능이 작동함 .loginPage("/login.html") // 로그인 페이지 설정하기 (기본적으..

사용자 정의 보안기능을 구현하기 위해 필요한 클래스들 1. WebSecurityConfigurerAdapter - 스프링 시큐리티의 웹 보안 기능 초기화 및 설정 할때 필요 - 내 시스템에 보안기능이 작동하게 하는 역활 - "HttpSecurity" 클래스를 생성함 2. SecurityConfig - WebSecurityConfigurerAdapter 를 상속받아 사용자 정의 보안 설정 클래스 역활을 함 - 시큐리티가 제공하는 클래스는 아니고 그냥 내가 만들것임!!! (커스텀 클래스) - 내가만든 클래스에서 시큐리티의 기능이 작동하도록 하기위해 - 따로 안만들면 "HttpSecurityConfiguration" 클래스에서 초기화가 이루어짐(2021-11-04 기준) 3. HttpSecurity - 세부적..