Spring Security - муравейник разрешает все не работать - PullRequest
0 голосов
/ 29 марта 2020

У меня проблема с antMatchers. Это не работает, как я ожидал. Я пытаюсь разрешить для всех конечных точек / токенов / **, но когда вызывается эта конечная точка, мои фильтры тоже вызываются (JwtTokenVerifier) ​​

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
            .authorizeRequests()
            .antMatchers("/tokens/**").permitAll()
            .anyRequest().authenticated()
            .and()
            .csrf().disable()
            .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
            .and()
            .cors()
            .and()
            .addFilter(new JwtUsernameAndPasswordAuthenticationFilter(authenticationManager(), this.jwtProperties, objectMapper))
            .addFilterAfter(new JwtTokenVerifier(this.jwtProperties), JwtUsernameAndPasswordAuthenticationFilter.class);
}

Каждый раз, когда я пытаюсь получить доступ, например, / tokens / refre sh -access-token JwtTokenVerifier вызывается.

@PostMapping("/tokens/refresh-access-token")
@ResponseStatus(HttpStatus.OK)
public Map<String,String> refreshAccessToken(@RequestBody String refreshToken)

Проверка токена:

public class JwtTokenVerifier extends OncePerRequestFilter {

private final JwtProperties jwtProperties;

public JwtTokenVerifier(JwtProperties jwtProperties) {
    this.jwtProperties = jwtProperties;
}

@Override
protected void doFilterInternal(HttpServletRequest request,
                                HttpServletResponse response,
                                FilterChain filterChain) throws ServletException, IOException {

1 Ответ

1 голос
/ 29 марта 2020

Если возможно, вы можете попытаться полностью исключить URL из обработки Spring Security, переопределив метод WebSecurity. Однако я не знаю, хотите ли вы полностью игнорировать FilterChain для этого пути.

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/tokens/**");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...