首页 > 解决方案 > 如何在 @PreAuthorize 错误时重定向到自定义页面?

问题描述

我想在@PreAuthorize身份验证错误时重定向到自定义 html 页面?

我用过@PreAuthorize("hasRole("Admin"))控制器。因此,如果用户没有管理员角色,他将被踢出,我看到身份验证错误。

但我想覆盖此身份验证失败错误并将用户重定向到我开发的标准错误页面。

有解决方案吗?

代码:

@PreAuthorize("hasRole("Admin")){
public List<Object> getBooksList(String id){
    return bookList;
}

标签: spring-bootspring-securityspring-annotations

解决方案


首先要注意的是@PreAuthorize注释链接到一个AuthenticationManager可以用GlobalMethodSecurityConfiguration.

您可以使用带@ControllerAdvice注释的类捕获身份验证异常,但您必须注册一个新的AuthenticationEntryPoint.

方法如下:使用 @ExceptionHandler 处理 spring 安全认证异常


推荐阅读