我无法解决为什么每当我使用HTTPS访问我的网站时都没有应用过滤器:https://localhost:8443/initiator
。因此,它未正确重定向到未经身份验证的用户的登录页面。如果我使用http://localhost:8080/initiator
访问它,那么它就可以正常工作。
我正在为我的Web应用程序使用一个非常简单的Spring安全配置。如下所示,我希望每个链接都在SSL上。
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.1.xsd">
<http auto-config="false" >
<intercept-url pattern="/**" requires-channel="https"/>
<intercept-url pattern="/initiator*" access="ROLE_USER" />
<!-- Other configuration here like the logout, login, etc-->
</http>
</beans>
我使用的是Spring Security 3.1.3.RELEASE版。请注意,如果它是http,一切正常。如果我将其设置为https,则不再有效。
非常感谢。
答案 0 :(得分:0)
您是否尝试过更改规则?由于优先权,我认为你去的时候https://localhost:8443/initiator
被第一条规则所采取。我的意思是,尝试这样:
<intercept-url pattern="/initiator*" access="ROLE_USER" />
<intercept-url pattern="/**" requires-channel="https"/>