Использование AccessDeniedPage с HttpSecurity addFilterBefore не работает

Пробую реализовать собственную аутентификацию и добавить дополнительное поле в UsernamePasswordAuthenticationToken

Не получается перенаправить пользователя на нужную страницу если он пытается получить доступ не пройдя аутентификацию. Все остальные фильтры настройки работают отлично при попытке перейти на страницу для которой требуется доступ я попадаю на страницу 403, в самом Spring обработку 403 я реализовал, но на нее не переходит, переходит, только если действительно не верный адрес.

Мне кажется это связано с изменением стандартной аутентификации и добавления

.addFilterBefore

об этом говорится тут, но я пока не понимаю, что нужно, некоторые рекомендуют так

в этой статье вообще говорится, что если мы добавляем .addFilterBefore мы меняем стандартный подход и все нужно делать иначе и на 2017 г мою проблему они решали за счет исключенного класса:

.authenticationEntryPoint(new Http401AuthenticationEntryPoint("401"));

Этот код вставлял везде, ничего не срабатывает:

.accessDeniedPage
.accessDeniedHandler() // необходимы классы реализовал

Я реализую эти и несколько других классов и интерфейсов:

1. public class CustomAuthenticationFilte extends UsernamePasswordAuthenticationFilter

2. public class CustomAuthenticationToken extends UsernamePasswordAuthenticationToken 

3. public class CustomUserDetailsAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider
...

В настройках все подключил

public class WebSecurityConfig extends WebSecurityConfigurerAdapter
...
http.addFilterBefore(authenticationFilter(), UsernamePasswordAuthenticationFilter.class)
               .exceptionHandling()
               .accessDeniedPage("/login.html")
               .authenticationEntryPoint((request, response, authException) -> {
                   response.sendError(HttpServletResponse.SC_FORBIDDEN);
               });

http

                .authorizeRequests(....
                 .and()
                .authorizeRequests()....
.......

...
    @Bean
    public CustomAuthenticationFilte authenticationFilter() throws Exception {
        CustomAuthenticationFilte filter = new CustomAuthenticationFilte();
        filter.setAuthenticationFailureHandler(customAuthenticationFailureHandler());
        filter.setAuthenticationSuccessHandler(myAuthenticationSuccessHandler());
        filter.setRequiresAuthenticationRequestMatcher(new AntPathRequestMatcher("/login.html", "POST"));
        filter.setAuthenticationManager(authenticationManagerBean());
        return filter;
    }


Ответы (0 шт):