- security filter chain은 suvlet 생성 전에 filter를 거친다.
- filter - suvlet - controller
💡 Spring Security의 필터 체인에서 각 필터의 기본 순서는 다음과 같다:
-> filter 사이에 새로 정의한 필터를 넣을 수도 있고, 기존 필터를 재정의 할 수 있음
- SecurityContextPersistenceFilter: 현재 요청에 대한 SecurityContext를 복원
- LogoutFilter: 로그아웃 요청을 처리(로그아웃은 필터를 그렇게 거치지 않아도 됨)
- CsrfFilter: CSRF 공격을 방지하기 위해 요청에 대해 CSRF 토큰을 검증
- UsernamePasswordAuthenticationFilter: 폼 기반 로그인을 처리
- DefaultLoginPageGeneratingFilter: 기본 로그인 페이지를 생성
- BasicAuthenticationFilter: HTTP 기본 인증을 처리
- RequestCacheAwareFilter: 인증된 사용자를 이전 요청으로 리다이렉트
- SecurityContextHolderAwareRequestFilter: SecurityContext에 대한 요청 기반의 접근을 허용
- AnonymousAuthenticationFilter: 인증되지 않은 사용자에게 익명 권한을 부여
- SessionManagementFilter: 세션 정책을 처리
- ExceptionTranslationFilter: 예외를 처리
- FilterSecurityInterceptor: 최종적으로 권한 검사를 수행
- UsernamePasswordAuthenticationFilter
- (2) 아이디와 패스워드가 맞으면 token생성
- (3) 부터는 토큰만 날라감
- loadUserByUsername 메소드에서 매개변수(pwd)를 받음 -> 자동 생성된다 함
- loadUserByUsername에선 User details 타입의 user객체 반환
- 이 객체에서의 pwd(암호화된)
- 토큰 안에 있는 pwd를 내부적으로 비교
- securityContext 안의 authentication 객체의 안에(principal)로 관리된다.
'Back-end > SpringBoot' 카테고리의 다른 글
Kotlin으로 OpenApi(Swagger)에서 multipart와 dto(vo) 같이 받는 법 (0) | 2025.02.10 |
---|---|
[SpringBoot] webflux (0) | 2024.12.18 |
[SpringBoot] WebSocket ver.Spring (0) | 2024.12.18 |