Я пытался запустить пример приложения SpringBoot и запустить его вместе с SpringBoot Security + JWT, который помог мне справиться с ситуацией с безопасностью. (Исходный код можно найти здесь: https://github.com/vaddipar/groclist)
Я неукоснительно следовал учебнику https://youtu.be/X80nJ5T7YpE?list=WL и настроил всю конфигурацию безопасности SpringBoot.
Теперь я достиг половины своей цели, заключающейся в повышении безопасности, но я не могу внести в белый список конечные точки входа и регистрации.
My 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);
}
}