亲爱的Sping'lers家伙,
我在春天偶然发现了intercept-url登录的问题。
如果没有登录,我只想将所有页面重定向到我的登录页面。
这是我使用的安全上下文。但是,此代码不允许我访问任何页面:
<security:http auto-config="true">
<security:form-login login-page="/login" default-target-url="/welcome"
authentication-failure-url="/loginfailed" />
<security:logout logout-success-url="/logout" />
<security:intercept-url pattern="/login" access="permitAll" />
<security:intercept-url pattern="/**" access="hasRole(ROLE_USER)" />
</security:http>
感谢您的帮助。
Lomu
根据jonnieM's post更改了我的配置:
现在
<security:http auto-config="true">
<security:intercept-url pattern="/login" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<security:intercept-url pattern="/**" access="ROLE_USER" />
<security:form-login login-page="/login" default-target-url="/welcome"
authentication-failure-url="/loginfailed" />
<security:logout logout-success-url="/logout" />
</security:http>
所以我认为“IS_AUTHENTICATED_ANONYMOUSLY”可以解决这个问题:)
干杯Lomu
答案 0 :(得分:4)
您应该应用<http use-expressions="true">
设置,否则<intercept-url>
的{{1}}属性中的值将不会被解释为Spring EL expressinos。