【发布时间】:2013-04-29 21:18:04
【问题描述】:
对于我希望处理的每个错误代码,我都有自定义错误页面,尽管我发现 spring-security 标记在使用这些页面时不起作用。例如,下面只显示“一个”:
<%@ page session="false" %>
<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %>
<p>One</p>
<sec:authorize access="isAuthenticated()">
<p>Two</p>
</sec:authorize>
<sec:authorize access="!isAuthenticated()">
<p>Three</p>
</sec:authorize>
具体来说,我的目标是我的web.xml 提供的错误页面,即
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/error/404-layout.jsp</location>
</error-page>
在我的控制器中,我抛出了一个名为ResourceNotFoundException 的RuntimeException,并用@ResponseStatus(value = HttpStatus.NOT_FOUND) 注释了找不到实体的位置。这会正确重定向到错误页面。
不起作用的正是上面所解释的,弹簧安全标签中的任何内容都不会呈现,无论是导致true 还是false,如我的示例所示,这两个标签都不会产生输出。
【问题讨论】:
标签: jsp spring-security