当前位置:   article > 正文

SpringBoot3版本下SpringSecurity的HttpSecurity配置_springboot3 security

springboot3 security

        今天在写项目的时候,需要取消SpringSecurity对一些界面的屏蔽,需要配置HttpSecurity。

但是从SpringBoot2.7开始,WebSecurityConfigurerAdapter就被遗弃了,我们无法通过继承WebSecurityConfigurerAdapter类,然后重写configure()方法来进行配置,就像下面这样:

  1. @Configuration
  2. @EnableWebSecurity
  3. public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
  4. @Override
  5. protected void configure(HttpSecurity http) throws Exception {
  6. ...
  7. }
  8. }

 所以我们可以通过返回一个SecurityFilterChain类型的Bean方法来进行配置:

  1. @Configuration
  2. @EnableWebSecurity
  3. public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
  4. ...
  5. @Override
  6. protected void configure(HttpSecurity http) throws Exception {
  7. http.cors().and().csrf().disable()
  8. .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()
  9. .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
  10. .authorizeRequests().antMatchers("/api/auth/**").permitAll()
  11. .antMatchers("/api/test/**").permitAll()
  12. .anyRequest().authenticated();
  13. // http....;
  14. }
  15. }

但是,上面这种方法在我自己实现的时候,提示csrf()等很多方法都已经被遗弃。查阅相关资料后发现Springboot3中上述方式已经失效,我们需要用以下的表达方式:

  1. @Configuration
  2. public class WebSecurityConfig {
  3. @Bean
  4. public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
  5. http.csrf(csrf -> csrf.disable())
  6. .exceptionHandling(exception -> exception.authenticationEntryPoint(unauthorizedHandler))
  7. .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
  8. .authorizeHttpRequests(auth -> auth.requestMatchers("/api/auth/**").permitAll()
  9. .requestMatchers("/api/test/**").permitAll()
  10. .anyRequest().authenticated());
  11. // http....;
  12. return http.build();
  13. }

 成功,没有报错。希望能够帮到你.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/484596
推荐阅读
相关标签
  

闽ICP备14008679号