Как перенаправить на пользовательскую страницу при ошибке @PreAuthorize? - PullRequest
1 голос
/ 28 июня 2019

Я хочу перенаправить на пользовательскую html-страницу при @PreAuthorize ошибке аутентификации?

Я использовал @PreAuthorize("hasRole("Admin")) для контроллера. Поэтому, если у пользователя нет роли администратора, его выгонят, и я вижу ошибку аутентификации.

Но я хочу отменить эту ошибку аутентификации и перенаправить пользователя на стандартную страницу ошибок, которую я разработал.

Есть ли решение для этого?

Код:

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

1 Ответ

0 голосов
/ 29 июня 2019

Первое, на что нужно обратить внимание, это то, что аннотация @PreAuthorize связана с AuthenticationManager, который можно установить с помощью GlobalMethodSecurityConfiguration.

Вы можете перехватить исключение аутентификации с помощью аннотированного класса @ControllerAdvice, но вам нужно зарегистрировать новый AuthenticationEntryPoint.

Вот как: Обработка исключений аутентификации безопасности Spring с помощью @ ExceptionHandler

...