Spring Security Configuration фильтрует любые запросы, кроме определенной конечной точки? - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть следующий код

http.authorizeRequests()
                .antMatchers("/users/login","/token/refresh").permitAll()
                .anyRequest().authenticated()
                .and()
                .addFilterAfter(new JWTAuthenticationFilter(),UsernamePasswordAuthenticationFilter.class)

И я подумал, что это значит не фильтровать запросы, которые соответствуют / users / login или / token / refresh, но фильтровать любые запросы, которые не соответствуют этому. Но это все еще фильтрует на /users/login.

Ответы [ 3 ]

0 голосов
/ 08 ноября 2018

Способ, который я решил в старом проекте, требует аутентификации на каждой конечной точке

http.authorizeRequests()
                .anyRequest().authenticated()
                .and()
                .addFilterAfter(new JWTAuthenticationFilter(),UsernamePasswordAuthenticationFilter.class)

и игнорирование безопасности на желаемых конечных точках

 public void configure(WebSecurity web) {
        web.ignoring().antMatchers(HttpMethod.POST, "/users/login");
    }
0 голосов
/ 08 ноября 2018

csrf включается Spring Security автоматически. Попробуйте отключить его.

http.csrf (). (Отключить). AuthorizeRequests (). AntMatchers ( "Вход в систему / пользователей /", "/ маркер / обновить"). PermitAll (). AnyRequest (). Проверка подлинности (). И (). addFilterAfter (новый JWTAuthenticationFilter (), UsernamePasswordAuthenticationFilter.class)

0 голосов
/ 08 ноября 2018

Попробуйте это.

.antMatchers("/users/login").permitAll()
.antMatchers("/token/refresh").permitAll()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...