SpringBoot: обойти фильтры OncePerRequestFilter - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть базовое приложение SpringBoot 2.0.5.RELEASE. Использование Spring Initializer, JPA, встроенного Tomcat, механизма шаблонов Thymeleaf и пакета в качестве исполняемого файла JAR.

Я создал специальный фильтр безопасности на основе JWT JwtFilter:

@Provider
public class JwtAuthorizationTokenFilter extends OncePerRequestFilter {
...
}

Но я хочу обойти этот фильтр только для 1 конкретного запроса / метода: "/api/v1/menus", когда POST

Но я не знаю, возможно ли это в WebSecurityConfigurerAdapter:

 JwtAuthorizationTokenFilter authenticationTokenFilter = new JwtAuthorizationTokenFilter(userDetailsService(), jwtTokenUtil, tokenHeader);
     httpSecurity
         .addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class)
          .antMatcher("/api/v1/menus")

1 Ответ

0 голосов
/ 17 сентября 2018

Вы можете переопределить метод shouldNotFilter из OncePerRequestFilter, как показано ниже:

@Provider
public class JwtAuthorizationTokenFilter extends OncePerRequestFilter {
    @Override
    protected boolean shouldNotFilter(HttpServletRequest request) throws ServletException {
        return new AntPathMatcher().match("/api/v1/menus", request.getServletPath());
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...