1

我正在使用以下配置访问拒绝页面

 <security:access-denied-handler error-page="/noAccess"/>

然后将 /noAccess 映射到控制器。但是当我尝试访问我无权访问的资源时,我得到一个错误页面

HTTP 状态 404 - 浏览器中的 /mycontext/noAccess

虽然当我输入整个网址http://abc.mycompany:8080/mycontext/noAccess我可以看到错误页面。知道为什么 spring 没有重定向到控制器吗?

4

2 回答 2

0

将以下内容添加到您的 bean 配置中。

  <mvc:view-controller path="/uncaughtException"/>
  <mvc:view-controller path="/resourceNotFound"/>
  <mvc:view-controller path="/dataAccessFailure"/>

 <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"    p:defaultErrorView="uncaughtException">
    <property name="exceptionMappings">
        <props>
            <prop key=".DataAccessException">dataAccessFailure</prop>
            <prop key=".NoSuchRequestHandlingMethodException">resourceNotFound</prop>
            <prop key=".TypeMismatchException">resourceNotFound</prop>
            <prop key=".MissingServletRequestParameterException">resourceNotFound</prop>
        </props>
    </property>
</bean>

创建以下页面并将其添加到 Context 文件夹

     resourceNotFound.jsp
     uncaughtException.jsp
     dataAccessFailure.jsp
于 2013-08-06T10:39:38.690 回答
0

我在我的项目中使用以下配置访问拒绝页面,它对我有用。

根据您的需要进行更改。

<security:http auto-config="true" use-expressions="true" access-denied-page="/accessDenied.jsp">

        <security:form-login login-page="/index.jsp"
            default-target-url="/jsp/home.jsp" />


        <security:intercept-url pattern="/jsp/listInBetweenPlaces.jsp"
            access="permitAll" />
</security:http>
于 2013-08-06T10:35:03.830 回答