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

ced*_*ric 2 redirect spring-security

我有一个使用spring web flow ang spring security的j2ee web应用程序.如果用户的角色在被访问的页面上没有访问权限,我想将用户重定向到页面(可能是错误页面),因为目前我收到错误

错误404 - 从RFC 2068超文本传输​​协议找不到 - HTTP/1.1:10.4.5 404未找到服务器未找到与Request-URI匹配的任何内容.没有说明该病症是暂时的还是永久性的.

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

我如何进行此重定向.我尝试了安全性的access-denied-page属性:http但我仍然得到错误.这是我对security-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>
Run Code Online (Sandbox Code Playgroud)

rod*_*oap 5

安全性access-denied-page属性:http应该足够了,向我们展示您正在使用的Spring配置.
在此期间尝试将此添加到web.xml:

<error-page>
    <error-code>404</error-code>
    <location>notfound.jsp</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)