如何重定向到@PreAuthorize错误的自定义页面?

时间:2019-06-28 19:23:36

标签: spring-boot spring-security spring-annotations

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

我已经使用@PreAuthorize("hasRole("Admin"))作为控制器。因此,如果用户没有管理员角色,他将被踢出去,并且看到验证错误。

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

有解决方案吗?

代码:

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

1 个答案:

答案 0 :(得分:0)

首先要注意的是@PreAuthorize注释链接到AuthenticationManager,可以用GlobalMethodSecurityConfiguration进行设置。

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

方法如下:Handle spring security authentication exceptions with @ExceptionHandler