当用户点击登录/注册页面(/ user / add)时,我想从http切换到https,并保持https会话直到注销。 主页不含https。 我在security.xml中的代码:
<http auto-config="true">
<intercept-url pattern="/home*" access="ROLE_USER" />
<intercept-url pattern="/user/add*" access="ROLE_USER" requires-channel="https"/>
<form-login login-page="/user/add" default-target-url="/" authentication-failure-url="/user/add" />
<port-mappings>
<port-mapping http="8080" https="8181"/>
</port-mappings>
</http>
我正在使用Glassfish 4.0,Spring MVC和Spring Security 3.0
当我点击页面/用户/添加按钮时,我收到此错误:
ERR_TOO_MANY_REDIRECTS
有什么建议吗?
答案 0 :(得分:1)
您获得了太多重定向,因为您将登录页面设置为“/ user / add”(当然,它不是页面 - 您应该将此地址设置为真正的登录页面)。但是,当用户到达此地址时,他被阻止,因为在您将“/ user / add *”定义为需要进行身份验证的安全资源之前的行。验证失败,然后用户被重定向到“/ user / add”,因为这被定义为'authentication-failure-url'。
这是解释。
希望有所帮助: - )
PS如果你想看一个如何做你想要的事情的例子,看看here(搜索“表格登录”)