我想在发生@PreAuthorize
身份验证错误时重定向到自定义html页面吗?
我已经使用@PreAuthorize("hasRole("Admin"))
作为控制器。因此,如果用户没有管理员角色,他将被踢出去,并且看到验证错误。
但是我想覆盖此身份验证失败错误,并将用户重定向到我开发的标准错误页面。
有解决方案吗?
代码:
@PreAuthorize("hasRole("Admin")){
public List<Object> getBooksList(String id){
return bookList;
}
答案 0 :(得分:0)
首先要注意的是@PreAuthorize
注释链接到AuthenticationManager
,可以用GlobalMethodSecurityConfiguration
进行设置。
您可以使用带有@ControllerAdvice
的带注释类捕获身份验证异常,但是必须注册新的AuthenticationEntryPoint
。
方法如下:Handle spring security authentication exceptions with @ExceptionHandler