1
我有這樣的配置:春季安全始終是登錄頁面重定向
<bean id="customizedFilterSecurityInterceptor"
class="org.springframework.security.web.access.intercept.FilterSecurityInterceptor">
<property name="authenticationManager" ref="authenticationManager"/>
<property name="accessDecisionManager" ref="accesDecisionManager"/>
<property name="securityMetadataSource">
<security:filter-security-metadata-source use-expressions="true" >
<security:intercept-url pattern="/css/**" access="permitAll" />
<security:intercept-url pattern="/js/**" access="permitAll" />
<security:intercept-url pattern="/externe*.do" access="permitAll" />
<security:intercept-url pattern="/*.do" access="isAuthenticated() or isRememberMe()" />
</security:filter-security-metadata-source>
</property>
</bean>
<bean id="loginUrlAuthenticationEntryPoint"
class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint">
<property name="loginFormUrl">
<value>/login.jsp</value>
</property>
<property name="forceHttps">
<value>false</value>
</property>
</bean>
<bean id="externeServiceInterceptor" class="fr.global.commun.springSecurity.MySecurityInterceptor">
<property name="authenticationManager" ref="authenticationManager"/>
...
<property name="securityMetadataSource">
<security:filter-security-metadata-source use-expressions="true" >
<security:intercept-url pattern="/externe*.do" access="isAuthenticated()" />
</security:filter-security-metadata-source>
</property>
的問題是,所有以/externe
開始請求登錄頁面上的重定向,如果我刪除/*.do
,我沒有訪問攔截器,但直接在struts action Externe *上。
確定請求匹配'/ externe * .do'?你可以在DEBUG模式下運行spring安全(在log4j.properties中添加'log4j.logger.org.springframework.security = DEBUG')並在請求'externe * .do'後顯示輸出嗎? – Xaerxess 2012-07-12 13:05:33
嗯,這是一個白癡的錯誤...我忘了補充: 安全:filter-chain pattern =「/ externe * .do」filters =「externeServiceInterceptor」/> – 2012-07-12 13:28:59
在這樣的問題中,Spring Security總是首先進行DEBUG; ) – Xaerxess 2012-07-12 13:32:21