spring boot3
-
DelegatingFilterProxy 란?서블릿 필터 클래스이다.서블릿 컨테이너(Tomcat)에 필터로 등록되지만 내부적으로는 Spring Bean 이름으로 실제 Filter를 찾아서위임(delegate) 한다. 즉, 서블릿 필터처럼 동작하지만 진짜 필터 로직은 Spring Context 내에 있는 Bean 이 처리한다. ⚙️ 동작 구조 요약 [서블릿 컨테이너의 Filter Chain] ↓DelegatingFilterProxy (서블릿 필터, Spring이 자동 등록) ↓ (Bean 이름 기반으로 찾아서 위임)springSecurityFilterChain (Spring Security의 실제 필터 체인 Bean) ↓ecurity Filter들 (UsernamePassword..
DelegatingFilterProxyRegistrationBean<T extends Filter>DelegatingFilterProxy 란?서블릿 필터 클래스이다.서블릿 컨테이너(Tomcat)에 필터로 등록되지만 내부적으로는 Spring Bean 이름으로 실제 Filter를 찾아서위임(delegate) 한다. 즉, 서블릿 필터처럼 동작하지만 진짜 필터 로직은 Spring Context 내에 있는 Bean 이 처리한다. ⚙️ 동작 구조 요약 [서블릿 컨테이너의 Filter Chain] ↓DelegatingFilterProxy (서블릿 필터, Spring이 자동 등록) ↓ (Bean 이름 기반으로 찾아서 위임)springSecurityFilterChain (Spring Security의 실제 필터 체인 Bean) ↓ecurity Filter들 (UsernamePassword..
2025.08.04 -
Spring Boot 3 에서 Spring Security 6 를 사용하여 로그인 시 동시 세션 제어를 설정하려고 한다. Spring Security 의 SecurityFilterChain 에서 Session 을 관리하는 Filter 는SessionManagementFilter 와 ConcurrentSessionFilter 이다. SessionManagementFilter인증 직후에 세션을 생성하거나 재사용하고, 세션 관련 정책을 적용한다. 세션을 관리하는 Filter 인 SessionManagementFilter 는 4가지 기능을 한다.세션 관리 : 인증 후 사용자의 세션 관리(등록, 조회, 삭제)동시 세션 제어 : 동일 계정에 대한 세션 관리세션 고정 보호 : 인증 후 세션 쿠키를 재발급하여 세션 ..
Spring Security 동시 세션 제어(SessionManagementFilter, ConcurrentSessionFilter)Spring Boot 3 에서 Spring Security 6 를 사용하여 로그인 시 동시 세션 제어를 설정하려고 한다. Spring Security 의 SecurityFilterChain 에서 Session 을 관리하는 Filter 는SessionManagementFilter 와 ConcurrentSessionFilter 이다. SessionManagementFilter인증 직후에 세션을 생성하거나 재사용하고, 세션 관련 정책을 적용한다. 세션을 관리하는 Filter 인 SessionManagementFilter 는 4가지 기능을 한다.세션 관리 : 인증 후 사용자의 세션 관리(등록, 조회, 삭제)동시 세션 제어 : 동일 계정에 대한 세션 관리세션 고정 보호 : 인증 후 세션 쿠키를 재발급하여 세션 ..
2025.06.16 -
Spring Security 6버전을 설정하면서 문득 FilterChain 의 순서가 궁금하여 찾아보다가 아래 방법으로 목록을 확인했다. @Autowiredprivate List securityFilterChains;@PostConstructpublic void printFilters() { securityFilterChains.forEach(chain -> { chain.getFilters().forEach(filter -> { System.out.println("FILTER === "+filter.getClass().getSimpleName()); }); });} SecurityFilterChain 목록을 가진 리스트를 @Autowired 를 통..
Spring Security FilterChain 목록 조회(@PostConstruct)Spring Security 6버전을 설정하면서 문득 FilterChain 의 순서가 궁금하여 찾아보다가 아래 방법으로 목록을 확인했다. @Autowiredprivate List securityFilterChains;@PostConstructpublic void printFilters() { securityFilterChains.forEach(chain -> { chain.getFilters().forEach(filter -> { System.out.println("FILTER === "+filter.getClass().getSimpleName()); }); });} SecurityFilterChain 목록을 가진 리스트를 @Autowired 를 통..
2025.06.16 -
Runnable 인터페이스란?작업(Task)을 정의하기 위한 함수형 인터페이스이다.주로 스레드에서 실행할 작업을 정의할 때 사용된다. @FunctionalInterfacepublic interface Runnable { void run();} 추상 메서드인 void run() 메서드만 존재한다.@FuntionalInterface 가 붙어있는 함수형 인터페이스라서 람다식으로 표현 가능하다.결과값이 없고 예외도 throws 하지 않는 단순한 실행 작업을 나타낸다. ✅ 언제 사용하나요? Thread 생성 시 실행할 작업 정의ExecutorService 같은 스레드 풀에 작업 제출할때 사용 ✅ Thread와 함께 사용하는 예 일반 클래스package com.obo.controller;public cl..
Runnable 인터페이스, ExecutorService 인터페이스Runnable 인터페이스란?작업(Task)을 정의하기 위한 함수형 인터페이스이다.주로 스레드에서 실행할 작업을 정의할 때 사용된다. @FunctionalInterfacepublic interface Runnable { void run();} 추상 메서드인 void run() 메서드만 존재한다.@FuntionalInterface 가 붙어있는 함수형 인터페이스라서 람다식으로 표현 가능하다.결과값이 없고 예외도 throws 하지 않는 단순한 실행 작업을 나타낸다. ✅ 언제 사용하나요? Thread 생성 시 실행할 작업 정의ExecutorService 같은 스레드 풀에 작업 제출할때 사용 ✅ Thread와 함께 사용하는 예 일반 클래스package com.obo.controller;public cl..
2025.05.16 -
환경 : Spring Boot 3, HikariCPSpring Boot 에서 DBCP 의 Connection Pool 에서 풀 안의 커넥션이 유효한지에 대한 쿼리문을 날리는데그게 ValidationQuery 이다.해당 쿼리문의 시간을 설정하고 로그로 확인하기 위해 작성하는 글이다. 1. pom.xml 에 log4j2 dependency 추가하기 org.springframework.boot spring-boot-starter-log4j2 2. Spring Boot 기본 logback 제외하기Spring Boot 의 기본 log 라이브러리인 logback 을 제외시킨다. org.springframework.boot spring-boot-starter org.springframewo..
Spring Boot log4j2 설정하기 (Spring Boot3, HikariCP)환경 : Spring Boot 3, HikariCPSpring Boot 에서 DBCP 의 Connection Pool 에서 풀 안의 커넥션이 유효한지에 대한 쿼리문을 날리는데그게 ValidationQuery 이다.해당 쿼리문의 시간을 설정하고 로그로 확인하기 위해 작성하는 글이다. 1. pom.xml 에 log4j2 dependency 추가하기 org.springframework.boot spring-boot-starter-log4j2 2. Spring Boot 기본 logback 제외하기Spring Boot 의 기본 log 라이브러리인 logback 을 제외시킨다. org.springframework.boot spring-boot-starter org.springframewo..
2025.04.30