我一直在尝试启动一个示例 SpringBoot 应用程序并与 SpringBoot Security+JWT 一起运行,以帮助我处理安全情况。 (源代码可以在这里找到:https://github.com/vaddipar/groclist)
我已关注https://youtu.be/X80nJ5T7YpE?list=WL认真地指导并设置整个 SpringBoot Security 配置。
现在,我实现了一半的目标,即增加安全性,但我无法将登录和注册端点列入白名单。
下面给出了我的WebSecurityConfig。它具有将登录和注册端点列入白名单的配置,但它不起作用。有人可以看一下并告知这里出了什么问题吗?
@EnableWebSecurity
class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService myUserDetailsService;
@Autowired
private JwtRequestFilter jwtRequestFilter;
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(myUserDetailsService);
}
@Bean
public PasswordEncoder passwordEncoder() {
return NoOpPasswordEncoder.getInstance();
}
@Override
@Bean
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity.csrf().disable()
.anonymous().and()
.authorizeRequests().antMatchers("/login").permitAll().and()
.authorizeRequests().antMatchers("/register").permitAll()
.anyRequest().authenticated()
.and()
.exceptionHandling().and().sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS);
httpSecurity.addFilterBefore(jwtRequestFilter, UsernamePasswordAuthenticationFilter.class);
}
}
最佳答案
不要将登录与 spring security 一起用作端点。使用身份验证或登录代替,它应该可以正常工作。
关于java - Spring Boot Security 未将登录端点列入白名单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61194023/