【问题标题】:Different 404 error page depending on the user role不同的 404 错误页面取决于用户角色
【发布时间】:2015-02-22 08:38:55
【问题描述】:
我正在开发一个使用 spring mvc 和 spring-security 进行身份验证的 Web 应用程序。
所以我有三个角色:ROLE_ADMIN、ROLE_CONS 和 ROLE_CP
我有三个 404 页面 404CP.jsp、404Cons.jsp 和 404Admin.jsp
但问题是我只知道如何在 web.xml 文件中为整个应用程序指定错误页面:
<error-page>
<error-code>404</error-code>
<location>/presentation/404CP.jsp</location>
</error-page>
所以我想知道如何为每个角色指定不同的404页面
提前致谢
【问题讨论】:
标签:
spring
spring-mvc
jakarta-ee
spring-security
【解决方案1】:
试试这个:
web.xml:
<error-page>
<error-code>404</error-code>
<location>/notFound</location>
</error-page>
错误控制器:
@Controller
public class ErrorController {
@RequestMapping("/notFound")
public String notFound(HttpServletRequest request) {
if (request.isUserInRole("ROLE_ADMIN")) {
return "404Admin";
} else if (request.isUserInRole("ROLE_CONS")) {
return "404Cons";
}
// ...
}
}
错误页面必须位于您的视图所在的目录中(以便视图解析器正确解析它们)。