Redirect 如果页面上没有访问权限,则Spring安全重定向

Redirect 如果页面上没有访问权限,则Spring安全重定向,redirect,spring-security,Redirect,Spring Security,我有一个使用SpringWebFlow和SpringSecurity的j2ee web应用程序。我想将用户重定向到页面可能是一个错误页面,如果用户的角色无法访问正在访问的页面,因为当前我收到了错误 找不到错误404 来自RFC 2068超文本传输协议-HTTP/1.1: 10.4.5 404未找到 服务器未找到任何与请求URI匹配的内容。没有说明该情况是暂时的还是永久的 如果服务器不希望将此信息提供给客户端,则可以使用状态代码403禁止。如果服务器通过某种内部可配置机制知道旧资源永久不可用且没有

我有一个使用SpringWebFlow和SpringSecurity的j2ee web应用程序。我想将用户重定向到页面可能是一个错误页面,如果用户的角色无法访问正在访问的页面,因为当前我收到了错误

找不到错误404 来自RFC 2068超文本传输协议-HTTP/1.1: 10.4.5 404未找到 服务器未找到任何与请求URI匹配的内容。没有说明该情况是暂时的还是永久的

如果服务器不希望将此信息提供给客户端,则可以使用状态代码403禁止。如果服务器通过某种内部可配置机制知道旧资源永久不可用且没有转发地址,则应使用410 Gone状态代码

如何重定向。我尝试了security:http的access denied page属性,但仍然出现错误。这是我的http安全配置

顺便说一下,我正在使用Spring Faces和Facelets。这可能是问题的原因吗

<!-- Configure Spring Security -->
<security:http auto-config="true" access-denied-page="/deniedpage.xhtml" 
    session-fixation-protection="newSession">
    <security:intercept-url pattern="/main.do"
        access="ROLE_SUPERVISOR, ROLE_USER" />
    <security:intercept-url pattern="/logoutSuccess.do"
        access="ROLE_SUPERVISOR, ROLE_USER" />
    <security:intercept-url pattern="/edit.do" 
        access="ROLE_SUPERVISOR" />
    <security:intercept-url pattern="/register.do"
        access="ROLE_SUPERVISOR" />
    <security:intercept-url pattern="/admin_main.do"
        access="ROLE_SUPERVISOR" />
    <security:intercept-url pattern="/*"
        access="IS_AUTHENTICATED_ANONYMOUSLY" />
    <security:form-login login-page="/loginForm.do"
        default-target-url="/main.do" authentication-failure-url="/loginForm.do?login_error=1" />
    <security:logout logout-url="/logout.do"
        invalidate-session="true" logout-success-url="/logoutSuccess.do" />
    <security:concurrent-session-control
        max-sessions="-1" exception-if-maximum-exceeded="true" expired-url="/loginform.do" />

</security:http>
security:http的accessdenied页面属性应该足够了,向我们展示您正在使用的Spring配置。 同时,尝试将以下内容添加到web.xml:


我在上面添加了我的配置。您能在日志中看到它是否试图重定向到/deniedpage.xhtml吗?像重定向到。。。然后是个错误,明白了。当我访问受限制的页面时,我已经去了我想要的地方,这取决于在“拒绝访问”页面中设置的内容。但是,如果我已经进入了网络流,并且仍然在流中,我的限制改变了,我仍然可以在那里操作。所以我创建了另一个状态,重新检查关键状态的访问角色。当然,除非有办法在州一级进行限制
<error-page>
    <error-code>404</error-code>
    <location>notfound.jsp</location>
</error-page>