DelegatingFilterProxy
SpringSecurityクラスではありません。SpringWebパッケージからです。
標準のサーブレット2.3フィルタのプロキシであり、フィルタインターフェイスを実装するSpring管理のBeanに委任します。SpringアプリケーションコンテキストでターゲットBeanの名前を指定する、web.xmlの「targetBeanName」フィルターinit-paramをサポートします。
使用する場合
<http auto-config="true">
</http>
Spring Securityは、名前を使用して(暗黙的に)Beanを作成し(これが、にspringSecurityFilterChain
ある理由です)、すべての要求()は(Spring Securityによって)それによって処理されます。<filter-name>springSecurityFilterChain</filter-name>
web.xml
/*
次に、Spring Securityを構成し、より具体的なURL(/*welcome
)を指定します。
<intercept-url pattern="/welcome*" access="ROLE_USER" />
それは言うようなものです:
- すべてのURLリクエスト(
/*
)はSpringSecurityが調査する必要があります
- URLが一致する場合
/welcome*
、プリンシパルがROLE_USER
役割を持つ必要があります。
アプリケーションでより高度なセキュリティ処理が必要な場合は、そのフィルターチェーンBeanを自分で作成し、すべてのフィルターを手動で構成できます。
例:
<!-- Filter Chain -->
<bean id="springSecurityFilterChain"
class="org.springframework.security.web.FilterChainProxy">
<constructor-arg>
<list>
<sec:filter-chain pattern="/favicon.ico"
filters="none"/>
<sec:filter-chain pattern="/img/**"
filters="none"/>
<sec:filter-chain pattern="/**"
filters="bannedIPsFilter, <!-- custom filter -->
channelProcessingFilter,
securityContextPersistenceFilter,
concurrentSessionFilter,
logoutFilter,
secondAuthenticationFilter, <!-- custom filter -->
openIDAuthenticationFilter,
usernamePasswordAuthenticationFilter,
anonymousAuthenticationFilter,
captchaFilter, <!-- custom filter -->
sessionManagementFilter,
exceptionTranslationFilter,
filterSecurityInterceptor,
switchUserProcessingFilter"
/>
</list>
</constructor-arg>
</bean>