spring security
-
ConcurrentSessionFilter 와 SessionManagementFilter 는 세션 기반 보안과 관련 있지만, 역할과 책임이 명확히 다르다. 1️⃣ SessionManagementFilter "이 요청의 세션 상태가 정상적인가?" 를 관리하는 필터이다.SessionManagementFilter 는 사용자 로그인 인증 시점과 인증된 요청 진입 시에 동작한다. SessionManagementFilter 는 사용자가 인증되었을 시점에 SessionAuthenticationStrategy 들을실행시켜준다. Spring Security 6 부터는 기본 설정에서 SessionManagementFilter 가 아닌 각 인증 필터(예: UsernamePasswordAuthenticationFilter)..
Spring Security ConcurrentSessionFilter, SessionManagementFilterConcurrentSessionFilter 와 SessionManagementFilter 는 세션 기반 보안과 관련 있지만, 역할과 책임이 명확히 다르다. 1️⃣ SessionManagementFilter "이 요청의 세션 상태가 정상적인가?" 를 관리하는 필터이다.SessionManagementFilter 는 사용자 로그인 인증 시점과 인증된 요청 진입 시에 동작한다. SessionManagementFilter 는 사용자가 인증되었을 시점에 SessionAuthenticationStrategy 들을실행시켜준다. Spring Security 6 부터는 기본 설정에서 SessionManagementFilter 가 아닌 각 인증 필터(예: UsernamePasswordAuthenticationFilter)..
2025.12.16 -
RequestMatchersSpring Security 에서 요청을 필터링하거나 특정 요청에 대한 보안 정책(인가, 인증 등) 을 매칭할 때 사용하는핵심 인터페이스 중 하나이다.👉 org.springframework.security.web.util.matcher.RequestMatcher 🔍 RequestMatcher 개요RequestMatcher 는 HTTP 요청(HttpServletRequest) 이 특정 조건과 일치하는지 여부를 판단하기 위한전략(Strategy) 인터페이스다.public interface RequestMatcher { boolean matches(HttpServletRequest request);} 들어온 요청이 "이 URL, 이 메서드, 이 헤더 조건에 맞는가?" 를..
Spring Security RequestMatcher InterfaceRequestMatchersSpring Security 에서 요청을 필터링하거나 특정 요청에 대한 보안 정책(인가, 인증 등) 을 매칭할 때 사용하는핵심 인터페이스 중 하나이다.👉 org.springframework.security.web.util.matcher.RequestMatcher 🔍 RequestMatcher 개요RequestMatcher 는 HTTP 요청(HttpServletRequest) 이 특정 조건과 일치하는지 여부를 판단하기 위한전략(Strategy) 인터페이스다.public interface RequestMatcher { boolean matches(HttpServletRequest request);} 들어온 요청이 "이 URL, 이 메서드, 이 헤더 조건에 맞는가?" 를..
2025.11.12 -
Spring Security 5 버전에서 6 버전으로 넘어가면서 바뀐점이 많다.그 중 HTTP 요청에 대한 URL 매칭하는 함수가 달라졌다. antMatchers()기능 : Apache Ant 의 와일드 카드를 사용하여 URL 을 매칭한다.사용http .authorizeRequests() .antMatchers("/admin/**").hasRole("ADMIN") .antMatchers("/public/**").permitAll(); 특징 : 단순하고 직관적, URL 패턴 매칭에 최적화되어 있다. requestMatchers()기능 : 더 유연한 매칭 함수로, URL 뿐만 아니라 HTTP 메서드, 요청 파라미터 등 조건 추가 가능하다.사용http .authorizeHttpRequests(a..
Spring Security antMatchers(5.x 버전) 과 requestMatchers(6 버전) 의 차이Spring Security 5 버전에서 6 버전으로 넘어가면서 바뀐점이 많다.그 중 HTTP 요청에 대한 URL 매칭하는 함수가 달라졌다. antMatchers()기능 : Apache Ant 의 와일드 카드를 사용하여 URL 을 매칭한다.사용http .authorizeRequests() .antMatchers("/admin/**").hasRole("ADMIN") .antMatchers("/public/**").permitAll(); 특징 : 단순하고 직관적, URL 패턴 매칭에 최적화되어 있다. requestMatchers()기능 : 더 유연한 매칭 함수로, URL 뿐만 아니라 HTTP 메서드, 요청 파라미터 등 조건 추가 가능하다.사용http .authorizeHttpRequests(a..
2025.11.12 -
SpringSessionBackedSessionRegistry 이란?Spring Security 의 동시 세션 제어 기능 및 Spring Session 을 사용하여 분산 환경(다중 서버)에서도동작하게 만들어주는 구현체입니다. SessionRegistry 란?Spring Security 의 SessionRegistry 인터페이스란 현재 로그인한 사용자의 세션 목록을 관리하고동시 세션 개수를 제어하는데 사용된다. public interface SessionRegistry { List getAllPrincipals(); List getAllSessions(Object principal, boolean includeExpiredSessions); SessionInformation getSess..
Spring Security SessionRegistry, SpringSessionBackedSessionRegistry<S extends Session>SpringSessionBackedSessionRegistry 이란?Spring Security 의 동시 세션 제어 기능 및 Spring Session 을 사용하여 분산 환경(다중 서버)에서도동작하게 만들어주는 구현체입니다. SessionRegistry 란?Spring Security 의 SessionRegistry 인터페이스란 현재 로그인한 사용자의 세션 목록을 관리하고동시 세션 개수를 제어하는데 사용된다. public interface SessionRegistry { List getAllPrincipals(); List getAllSessions(Object principal, boolean includeExpiredSessions); SessionInformation getSess..
2025.08.13 -
Spring 에서의 세션(Session) 은 기본적으로 서블릿 컨테이너(예: Tomcat, Jetty 등) 에 의해 관리된다. 🔍 기본 세션 관리 구조 항목내용세션 저장소기본적으로 서블릿 컨테이너가 HttpSession 객체를 사용해 관리저장 위치서버 메모리 (in-memory), 필요 시 Redis 등 외부 저장소로 대체 가능Spring 역할Spring 은 HttpSession 에 접근하거나, 추가 기능을 제공하는 수준(예: 세션 리스너 등록, 커스텀 세션 전략 등) ✅ 기본 흐름 클라이언트가 요청을 보냄(JSESSIONID쿠키 포함 OR 없음)서블릿 컨테이너(Tomcat 등)가 HttpSession 생성 또는 식별Spring 은 내부적으로 HttpServletRequest.getSession(..
Spring 에서 Session 관리 주체Spring 에서의 세션(Session) 은 기본적으로 서블릿 컨테이너(예: Tomcat, Jetty 등) 에 의해 관리된다. 🔍 기본 세션 관리 구조 항목내용세션 저장소기본적으로 서블릿 컨테이너가 HttpSession 객체를 사용해 관리저장 위치서버 메모리 (in-memory), 필요 시 Redis 등 외부 저장소로 대체 가능Spring 역할Spring 은 HttpSession 에 접근하거나, 추가 기능을 제공하는 수준(예: 세션 리스너 등록, 커스텀 세션 전략 등) ✅ 기본 흐름 클라이언트가 요청을 보냄(JSESSIONID쿠키 포함 OR 없음)서블릿 컨테이너(Tomcat 등)가 HttpSession 생성 또는 식별Spring 은 내부적으로 HttpServletRequest.getSession(..
2025.08.05 -
DelegatingFilterProxy 란?서블릿 필터 클래스이다.서블릿 컨테이너(Tomcat)에 필터로 등록되지만 내부적으로는 Spring Bean 이름으로 실제 Filter를 찾아서위임(delegate) 한다. 즉, 서블릿 필터처럼 동작하지만 진짜 필터 로직은 Spring Context 내에 있는 Bean 이 처리한다. ⚙️ 동작 구조 요약 [서블릿 컨테이너의 Filter Chain] ↓DelegatingFilterProxy (서블릿 필터, Spring이 자동 등록) ↓ (Bean 이름 기반으로 찾아서 위임)springSecurityFilterChain (Spring Security의 실제 필터 체인 Bean) ↓security Filter들 (UsernamePasswor..
DelegatingFilterProxyRegistrationBean<T extends Filter>DelegatingFilterProxy 란?서블릿 필터 클래스이다.서블릿 컨테이너(Tomcat)에 필터로 등록되지만 내부적으로는 Spring Bean 이름으로 실제 Filter를 찾아서위임(delegate) 한다. 즉, 서블릿 필터처럼 동작하지만 진짜 필터 로직은 Spring Context 내에 있는 Bean 이 처리한다. ⚙️ 동작 구조 요약 [서블릿 컨테이너의 Filter Chain] ↓DelegatingFilterProxy (서블릿 필터, Spring이 자동 등록) ↓ (Bean 이름 기반으로 찾아서 위임)springSecurityFilterChain (Spring Security의 실제 필터 체인 Bean) ↓security Filter들 (UsernamePasswor..
2025.08.04