所有站点都重定向到登录页面

时间:2013-04-13 11:00:26

标签: spring spring-mvc spring-security

亲爱的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

1 个答案:

答案 0 :(得分:4)

您应该应用<http use-expressions="true">设置,否则<intercept-url>的{​​{1}}属性中的值将不会被解释为Spring EL expressinos。