프로젝트 구성 및 의존성 추가
스프링 시큐리티의 의존성 추가 시 일어나는 일들 Show
문제점
사용자 정의 보안 기능 구현SecurityConfig 설정
WebSecurityConfigurerAdapter를 상속받은 SecurityConfig 클래스에서는 사용자가 직접 보안 설정을 정의 할 수 있다Form Login 인증클라이언트와 서버간의 관계속에서 스프링 시큐리티가 인증처리 프로세스
Form Login 인증 API
UsernamePasswordAuthenticationFilter인증처리를 담당하고 인증처리에 요청을 처리하는 필터가 UsernamePasswordAuthenticationFilter이다 내부적으로 각각의 인증처리의 역할을 통해 인증처리를 하게 된다
크게 인증을 하기 전 작업 , 인증 후 작업으로 나뉘는데 그 분기점은 AuthenticationManager이다.Logout 처리, LogoutFilter
Remember Me 인증
JSESSIONID가 없더라도 스프링 시큐리티에서는 Remember-Me 쿠키가 있다면 다시 인증을 시도하고 JSESSIONID를 다시 생성한다RememberMeAuthenticationFilterRememberMeAuthenticationFilter가 정상적으로 작동하는 조건
RememberMeAuthenticationFilter가 요청을 처리하는 조건은 Authentication이 NULL일 경우이다ex) 사용자의 세션이 만료되었거나 브라우저가 종료되어 시큐리티 컨텍스트를 찾지 못하는 경우Remember-Me 인증 절차
AnonymousAuthenticationFilter
AnonymousAuthenticationFilter는 익명 사용자라고 판단하고 익명 사용자용 토큰을 만들어서 인증 사용자와의 구분을 위함동시 세션 제어, 세션 고정 보호, 세션 정책
동시 세션 제어 전략
세션 고정 보호
사용자는 공격자가 심어놓은 쿠키로 로그인을 시도하더라도 인증할 때 마다 새로운 세션이 생성되고 새로운 쿠키가 생성되어 보호한다 세션 정책
세션 제어 필터SessionManagementFilter의 기능과 역할
ConcurrentSessionFilter
권한 설정 및 표현식
예외처리 및 요청 캐시 필터
사이트 간 요청 위조
CsrfFilter
|