クラス ChannelProcessingFilter
- java.lang.Object
-
- org.springframework.web.filter.GenericFilterBean
-
- org.springframework.security.web.access.channel.ChannelProcessingFilter
- 実装されたすべてのインターフェース:
javax.servlet.Filter
、org.springframework.beans.factory.Aware
、org.springframework.beans.factory.BeanNameAware
、org.springframework.beans.factory.DisposableBean
、org.springframework.beans.factory.InitializingBean
、org.springframework.context.EnvironmentAware
、org.springframework.core.env.EnvironmentCapable
、org.springframework.web.context.ServletContextAware
public class ChannelProcessingFilter extends org.springframework.web.filter.GenericFilterBean
Web リクエストが必要なチャネルを介して確実に配信されるようにします。内部的に
FilterInvocation
を使用してリクエストを表し、FilterInvocationSecurityMetadataSource
を使用して適用される属性を検索できるようにします。実際のチャネルセキュリティの決定と必要なアクションを構成済みの
ChannelDecisionManager
に委譲します。レスポンスがChannelDecisionManager
によってコミットされた場合、フィルターチェーンは続行されません。最も一般的な使用箇所は、リクエストが HTTPS を介して行われるようにすることです。この場合、
ChannelDecisionManagerImpl
はSecureChannelProcessor
およびInsecureChannelProcessor
で構成されます。典型的な構成は<bean id="channelProcessingFilter" class="org.springframework.security.web.access.channel.ChannelProcessingFilter"> <property name="channelDecisionManager" ref="channelDecisionManager"/> <property name="securityMetadataSource"> <security:filter-security-metadata-source request-matcher="regex"> <security:intercept-url pattern="\A/secure/.*\Z" access="REQUIRES_SECURE_CHANNEL"/> <security:intercept-url pattern="\A/login.jsp.*\Z" access="REQUIRES_SECURE_CHANNEL"/> <security:intercept-url pattern="\A/.*\Z" access="ANY_CHANNEL"/> </security:filter-security-metadata-source> </property> </bean> <bean id="channelDecisionManager" class="org.springframework.security.web.access.channel.ChannelDecisionManagerImpl"> <property name="channelProcessors"> <list> <ref bean="secureChannelProcessor"/> <ref bean="insecureChannelProcessor"/> </list> </property> </bean> <bean id="secureChannelProcessor" class="org.springframework.security.web.access.channel.SecureChannelProcessor"/> <bean id="insecureChannelProcessor" class="org.springframework.security.web.access.channel.InsecureChannelProcessor"/>
これにより、ログインフォームと/secure
パスへのアクセスはすべて HTTPS 経由で行われます。
コンストラクターのサマリー
コンストラクター コンストラクター 説明 ChannelProcessingFilter()
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 void
afterPropertiesSet()
void
doFilter(javax.servlet.ServletRequest req, javax.servlet.ServletResponse res, javax.servlet.FilterChain chain)
protected ChannelDecisionManager
getChannelDecisionManager()
protected FilterInvocationSecurityMetadataSource
getSecurityMetadataSource()
void
setChannelDecisionManager(ChannelDecisionManager channelDecisionManager)
void
setSecurityMetadataSource(FilterInvocationSecurityMetadataSource filterInvocationSecurityMetadataSource)
メソッドの詳細
afterPropertiesSet
public void afterPropertiesSet()
- 次で指定:
- インターフェース
org.springframework.beans.factory.InitializingBean
のafterPropertiesSet
- オーバーライド:
- クラス
org.springframework.web.filter.GenericFilterBean
のafterPropertiesSet
doFilter
public void doFilter(javax.servlet.ServletRequest req, javax.servlet.ServletResponse res, javax.servlet.FilterChain chain) throws java.io.IOException, javax.servlet.ServletException
- 例外:
java.io.IOException
javax.servlet.ServletException
getChannelDecisionManager
protected ChannelDecisionManager getChannelDecisionManager()
getSecurityMetadataSource
protected FilterInvocationSecurityMetadataSource getSecurityMetadataSource()
setChannelDecisionManager
public void setChannelDecisionManager(ChannelDecisionManager channelDecisionManager)
setSecurityMetadataSource
public void setSecurityMetadataSource(FilterInvocationSecurityMetadataSource filterInvocationSecurityMetadataSource)