@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
protected UserDetailsService userDetailsService(){
UserDetails admin = User.builder()
.username("admin")
.password(passwordEncoder().encode("admin"))
.authorities(Role.ADMIN.name())
.build();
UserDetails user = User.builder()
.username("user")
.password(passwordEncoder().encode("user"))
.authorities(Role.USER.name())
.build();
return new InMemoryUserDetailsManager(admin,user);
}
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
@Bean
public SecurityFilterChain securityFilterChain (HttpSecurity http) throws Exception{
http.authorizeRequests()
.requestMatchers(HttpMethod.GET,"/**").hasAnyAuthority(Role.ADMIN.name(),Role.USER.name())
.requestMatchers(HttpMethod.POST,"/**").hasAuthority(Role.ADMIN.name())
.anyRequest()
.authenticated();
return http.build();
}
}
个字符
当我做HTTP请求(发布或获取)在 Postman 我得到403错误,虽然我输入正确的登录名和密码,我已经连接 Postman 拦截器,但它无论如何不工作。没有Spring安全后,并获得请求正确工作。我将感谢您的任何帮助
1条答案
按热度按时间egdjgwm81#
正如@M.代努姆所说,你必须配置一个身份验证机制。例如,像这样配置基本身份验证:
字符串
在此配置之后,由于post端点的csrf,您将获得401错误。
使用这个来禁用它:
型
请参阅此问题了解更多详情:Getting 401 Unauthorized