Безопасность Spring работает с GET, но не с другими методами - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть следующий адаптер безопасности для моей службы Spring REST, чтобы использовать HTTP базовую аутентификацию http.Прямо сейчас, когда я пытаюсь отправить запрос к любой конечной точке GET HTTP, запрос успешно авторизуется и обрабатывается.Но все другие методы HTTP возвращают 401. Любая идея?

@EnableWebSecurity
public class WebSecurityAdapter extends WebSecurityConfigurerAdapter {

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.inMemoryAuthentication()
        .withUser("user").password(passwordEncoder().encode("password")).roles("USER");
}

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests().antMatchers("/**").hasRole("USER").and().httpBasic();
}

@Bean
public PasswordEncoder passwordEncoder() {
    return new BCryptPasswordEncoder();
}
}

1 Ответ

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

У вас есть исключение AuthenticationException, которое является исключением во время выполнения.Прочтите об этом здесь Spring Security Authentication .Конфигурация WebSecurity по умолчанию, как сказано здесь HttpSecurity :

protected void configure(HttpSecurity http) throws Exception {
http
    .authorizeRequests()
        .anyRequest().authenticated()
        .and()
    .formLogin()
        .and()
    .httpBasic();
}

Попробуйте добавить .anyRequest().authenticated() к вашему коду.

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