Java & Spring/Spring Security 8

08. 인증 프로세스 전체 흐름

Spring Security 인증 프로세스 전체 흐름 초기화 → 필터 체인 → 인증 → 인가 — 요청부터 응답까지 완전 해부 Ch.1 초기화 Ch.2 인증 프로세스 Ch.3 인증 아키텍처 Ch.4 인증 상태 영속성 Ch.5 세션 관리 Ch.6 예외 처리 Ch.7 악용 보호 목차 초기화 과정: DelegatingFilterProxy → FilterChainProxy → SecurityFilterChain 필터 체인 전체 순서와 역할 인증 아키텍처: AuthenticationManager와 ProviderManager 폼 로그인 전체 흐름 ..

07. 악용 보호

악용 보호 CORS, CSRF, SameSite — 웹 보안의 세 가지 핵심 방어 메커니즘 목차 CORS (Cross-Origin Resource Sharing) CSRF (Cross-Site Request Forgery) CSRF 토큰 관리 CSRF 통합 (Forms, SPA, MPA) SameSite 쿠키 속성 웹 애플리케이션은 출처를 넘나드는 요청(Cross-Origin)과 위조 요청(CSRF)에 노출되어 있다. CORS는 브라우저가 허용된 출처의 교차 요청만 허용하도록 제어하고, CSRF는 서버가 서명된 토큰으로 정상 요청을 검증한다. SameSite 속성은 쿠키 전송 범위를 출처 수준에서..

06. 예외 처리

예외 처리 Spring Security의 인증·인가 예외를 감지하고 적절한 응답으로 처리하는 메커니즘 목차 예외 유형: AuthenticationException vs AccessDeniedException exceptionHandling() API ExceptionTranslationFilter 흐름 HttpSessionRequestCache와 요청 저장 Spring Security는 필터 체인 내에서 발생하는 보안 예외를 ExceptionTranslationFilter가 중앙에서 포착한다. 예외는 크게 인증 실패(AuthenticationException)와 인가 실패(AccessDeniedException)로 구분..

05. 세션 관리

세션 관리 Spring Security의 세션 생성 정책, 고정 보호, 동시 세션 제어 전략 목차 동시 세션 제어 세션 고정 보호 세션 생성 정책 SessionManagementFilter & ConcurrentSessionFilter Spring Security의 세션 관리는 인증된 사용자의 세션을 안전하게 유지하기 위한 여러 전략을 제공한다. 동시 세션 제어를 통해 동일 계정의 중복 로그인을 관리하고, 세션 고정 보호로 세션 하이재킹 공격을 방어하며, SessionCreationPolicy를 통해 세션 생성 방식을 세밀하게 제어할 수 있다. 이 모든 처리는 SessionManagementFilter와 Co..

04. 인증 상태 영속성

인증 상태 영속성 SecurityContext의 저장, 로드, 삭제 메커니즘과 요청 간 인증 유지 전략 목차 SecurityContextRepository SecurityContextHolderFilter SecurityContextHolderFilter vs SecurityContextPersistenceFilter securityContext() API 커스텀 인증 필터에서의 SecurityContextRepository 스프링 MVC 로그인 구현 인증 상태 영속성은 사용자가 한번 인증을 하면 이후 요청에서도 인증이 유지되는 메커니즘이다. 사용자의 인증 정보와 권한이 SecurityContext에..

02. 인증 프로세스

인증 프로세스 Spring Security의 다양한 인증 메커니즘과 필터 동작 원리 목차 폼 인증 - formLogin() 폼 인증 필터 - UsernamePasswordAuthenticationFilter 기본 인증 - httpBasic() 기본 인증 필터 - BasicAuthenticationFilter 기억하기 인증 - rememberMe() 기억하기 인증 필터 - RememberMeAuthenticationFilter 익명 사용자 - anonymous() 로그 아웃 - logout() 요청 캐시 - RequestCache / SavedRequest Spri..

01. 초기화 과정 이해

초기화 과정 이해 Spring Security의 자동 설정과 필터 체인 초기화 구조 목차 프로젝트 생성 및 자동 설정 SecurityBuilder / SecurityConfigurer HttpSecurity / WebSecurity DelegatingFilterProxy / FilterChainProxy 사용자 정의 보안 설정하기 Spring Security는 애플리케이션이 기동될 때 자동 설정을 통해 보안 인프라를 초기화한다. 이 챕터에서는 프로젝트 구성부터 SecurityBuilder/SecurityConfigurer의 관계, HttpSecurity와 WebSecurity의 역할, 그리고 DelegatingF..