Обработчик запрещенного доступа Spring Custom Denied не работает - PullRequest
0 голосов
/ 10 мая 2019

следующий сценарий:

Я разработал микросервисную архитектуру с помощью Spring. Для этого я реализовал один сервис аутентификации и один сервис пользовательского интерфейса. Сессия используется совместно с Redis. Итак, трудоемкость заключается в том, что вы входите на страницу авторизации и после успеха вы перенаправляетесь на ресурс пользовательского интерфейса. Все идет нормально. Я также реализовал авторизацию по ролям пользователей для защиты моих ресурсов на уровне контроллера.

Что я хочу: Даже если вход был успешным, изменить URL-адрес и войти в зону с ограниченным доступом невозможно. Поэтому, когда клиент пытается сделать это, возникает исключение Accessdenied. В этом случае я хочу аннулировать сеанс и перенаправить на страницу входа в систему службы аутентификации.

Что я сделал: Я следовал этому руководству baeldung для реализации пользовательского обработчика доступа с правами доступа.

Код:

CustomAccessDeniedHandler.java

public class CustomAccessDeniedHandler implements AccessDeniedHandler {

    @Override
    public void handle(HttpServletRequest request, HttpServletResponse response,
            AccessDeniedException accessDeniedException) throws IOException, ServletException {

      response.sendRedirect("http://localhost:8000/login");

    }
}

SpringSecurity.java

@Configuration
public class SpringSecurityConfiguration extends WebSecurityConfigurerAdapter{

     @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests().anyRequest().authenticated();
            http.exceptionHandling().accessDeniedHandler(accessDeniedHandler());

        }

     @Bean
     public AccessDeniedHandler accessDeniedHandler(){
         return new CustomAccessDeniedHandler();
     }

}

Что происходит: Я установил точку останова в своем обработчике, но он не генерируется, и генерируется общее сообщение о доступе. Что-то я забыл зарегистрировать в реализации?

Спасибо, ребята

...