spring security
-
1️⃣ OAuth 2.0이란 무엇인가?OAuth 2.0은 권한 위임(Authorization) 프로토콜이다.즉, 🔐 사용자의 비밀번호를 공유하지 않고 🎫 Access Token 을 이용해 📡 다른 서버의 리소스(API) 에 접근하도록하는 표준이다. OAuth 2.0이 해결하는 문제예를 들어 어떤 사이트에서 이런 버튼을 본적 있을것이다. Google 로그인Kakao 로그인GitHub 로그인 이때 사용자는 아이디/비밀번호를 그 서비스에 직접 입력하지 않고외부 인증 서버가 대신 인증을 해준다. 즉 구조는 이렇게 된다.사용자 → 내 서비스 → Google 로그인 → Google 인증 → 내 서비스 내 서비스는 사용자의 비밀번호를 몰라도Google 이 인증한 사용자라는 것만 확인하면 된다. 👉 이것이 ..
Spring Security OAuth2.01️⃣ OAuth 2.0이란 무엇인가?OAuth 2.0은 권한 위임(Authorization) 프로토콜이다.즉, 🔐 사용자의 비밀번호를 공유하지 않고 🎫 Access Token 을 이용해 📡 다른 서버의 리소스(API) 에 접근하도록하는 표준이다. OAuth 2.0이 해결하는 문제예를 들어 어떤 사이트에서 이런 버튼을 본적 있을것이다. Google 로그인Kakao 로그인GitHub 로그인 이때 사용자는 아이디/비밀번호를 그 서비스에 직접 입력하지 않고외부 인증 서버가 대신 인증을 해준다. 즉 구조는 이렇게 된다.사용자 → 내 서비스 → Google 로그인 → Google 인증 → 내 서비스 내 서비스는 사용자의 비밀번호를 몰라도Google 이 인증한 사용자라는 것만 확인하면 된다. 👉 이것이 ..
2026.03.03 -
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