DelegatingFilterProxy와 FilterChainProxy는 Spring Security에서 사용되는 두 가지 중요한 클래스입니다.
이들의 역할과 차이점을 이해하려면 먼저 Servlet 필터와 Spring Security의 필터 체인에 대한 지식이 필요합니다.
DelegatingFilterProxy
DelegatingFilterProxy는 Spring Security의 시작점이자 Servlet 컨테이너와 Spring 애플리케이션 콘텍스트 사이에서 연결 역할을 하는 필터입니다. 이 필터는 Servlet 컨테이너의 표준 필터 체인에 등록되어 작동합니다.
DelegatingFilterProxy의 주요 목적은 Spring의 애플리케이션 컨텍스트에서 빈(Bean)으로 관리되는 실제 필터 구현체에 작업을 위임하는 것입니다. 이 필터는 실제 필터 구현체를 직접 수행하지 않지만, Spring 애플리케이션 콘텍스트에 존재하는 대상 필터 빈(Bean)에 요청을 위임합니다. 이를 통해 Spring Security의 기능을 Servlet 필터 체인에 통합할 수 있습니다.
FilterChainProxy
FilterChainProxy는 Spring Security 내에서 작동하는 중요한 클래스로, 내부적으로 여러 개의 보안 필터를 가지고 있는 필터 체인입니다. DelegatingFilterProxy가 Spring Security로 들어오는 요청을 처리하기 위해 FilterChainProxy에 요청을 위임합니다.
FilterChainProxy는 여러 보안 필터를 체인으로 연결하며, 이들 필터는 보안 관련 작업을 수행한 후 다음 필터로 요청을 전달합니다. 예를 들어, 인증(Authentication), 권한부여(Authorization), CSRF 보호, 로그인 및 로그아웃 처리 등의 기능을 수행하는 필터들이 이 체인에 포함됩니다.
차이점
DelegatingFilterProxy는 Servlet 필터로서, Servlet 컨테이너와 Spring 애플리케이션 컨텍스트 사이의 연결 역할을 합니다. Spring Security의 실제 필터 체인 구현체인 FilterChainProxy에 요청을 위임합니다.
FilterChainProxy는 Spring Security의 필터 체인 구현체로서, 여러 보안 필터를 관리하고 실행합니다.
이를 통해 실제 보안 작업이 수행됩니다.
결론적으로
DelegatingFilterProxy는 Servlet 필터로서 외부 요청을 Spring Security로 전달하는 역할을 수행하며,
FilterChainProxy는 실제 보안 작업을 수행하는 Spring Security의 필터 체인입니다.
이 두 클래스는 함께 작동하여 웹 애플리케이션의 보안을 강화하고, 다양한 보안 요구사항을 충족시키는 데 도움을 줍니다.
이 두 클래스를 이해하고 올바르게 구성하면, 웹 애플리케이션의 인증,권한부여,그리고 다양한 보안 기능을 효율적으로 관리할 수 있습니다.
'Spring' 카테고리의 다른 글
Spring Security 권한 부여 (0) | 2023.03.17 |
---|---|
Spring Security: 강력한 웹 보안 프레임워크 (0) | 2023.03.16 |
Java Spring _ MockMvc를 사용한 API 테스트 (0) | 2023.03.06 |
Java Spring_@Builder (0) | 2023.03.05 |
Java Spring_ @Mapping (0) | 2023.03.05 |