如何使用Spring Security处理404?

时间:2011-11-16 05:32:50

标签: spring-security http-status-code-404

我发现只有c#的相关话题,如果我错过了资源,请不要怪我。

看起来像

/ project / blablaentered and 404 with 404。

实际上我只想在抛出404页面时指定我自己的页面。

我的安全xml:

<security:http auto-config="true" use-expressions="true" >
    <security:form-login login-processing-url="/static/j_spring_security_check" login-page="/login" authentication-failure-url="/login?login_error=t"  default-target-url="/home"/>
    <security:intercept-url pattern="/home" access="isAuthenticated()" />
    <security:intercept-url pattern="/home/try" access="hasRole('ROLE_EDITOR')"/>
    <security:access-denied-handler error-page="/accessDenied"/> 
       </security:http>

更新:请关注解决方案:Custom 404 using Spring DispatcherServlet

2 个答案:

答案 0 :(得分:1)

最简单的方法可能是在error-page内启用web.xml元素,只要你不介意它是普通的JSP(即没有控制器)。这样,DispatcherServlet之外的将从servlet容器生成404的URL将遵循与Spring无法根据您的配置映射到控制器的任何URL相同的路径。

如果这还不够好,您可以为特定控制器定义@Exception方法,或使用HandlerExceptionResolver

答案 1 :(得分:0)

您需要添加课程:

import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer;


public class SpringSecurityInitializer extends AbstractSecurityWebApplicationInitializer {

    // Do nothing

}