WebSecurityConfigurerAdapter 已经弃用,用什么代替
时间: 2024-03-25 16:25:56 浏览: 125
WebSecurityConfigurerAdapter已经弃用,可以使用WebSecurityConfigurer来代替。WebSecurityConfigurer是一个接口,可以实现它来自定义Spring Security的配置,实现类似于WebSecurityConfigurerAdapter的功能。
相关问题
WebSecurityConfigurerAdapter 已经弃用,用什么代替?我使用的版本是5.7.8,你帮我写一个配置
你好,关于你的问题,WebSecurityConfigurerAdapter 已经废弃了,可以使用WebSecurityConfigurer接口代替。以下是一个基本的安全配置示例:
@Configuration
@EnableWebSecurity
public class SecurityConfig implements WebSecurityConfigurer {
@Autowired
private MyUserDetailsService userDetailsService;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN") // 需要admin角色才能访问/admin/**
.antMatchers("/**").permitAll() // 所有人都可以访问所有其他的路由
.and()
.csrf().disable() // 由于使用JWT,我们禁用csrf
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS); // 禁用session,所以状态是无状态的JWT
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder());
}
@Override
public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers("/images/**", "/js/**", "/css/**", "/favicon.ico"); // 忽略这些文件夹下的静态文件
}
@Bean
public BCryptPasswordEncoder bCryptPasswordEncoder() {
return new BCryptPasswordEncoder();
}
}
希望能解决你的问题,如果还有其他的问题,请继续提问。
WebSecurityConfigurerAdapter已经弃用
是的,从Spring Security 5.0版本开始,WebSecurityConfigurerAdapter类的一些方法已被弃用。这是因为Spring Security团队对配置API进行了重大改进,提供了更简洁且易于使用的方式来配置安全性。
在最新版本中,建议使用更具表达性的DSL(领域特定语言)来配置Spring Security。你可以使用HttpSecurity对象来定义安全规则,并使用一系列的方法链来配置它们。例如,你可以使用.antMatchers()方法来匹配特定的URL并应用相应的安全策略。
下面是一个基本的示例,展示了如何使用HttpSecurity来配置Spring Security:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/public/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
}
通过这种方式,你可以更灵活地配置Spring Security,并且可以更好地适应不同的安全需求。请注意,上述示例只是一个简单的示例,你可能需要根据你的实际需求进行更详细的配置。
阅读全文