我的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();
}
}
答案 0 :(得分:0)
您有一个AuthenticationException,它是运行时异常。在这里Spring Security Authentication中了解它。 WebSecurity的默认配置,如此处HttpSecurity所示:
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.httpBasic();
}
尝试将.anyRequest().authenticated()
添加到您的代码中。