【Spring】springSecurity中WebSecurityConfigurerAdapter类中configure方法(5版本以下)
泡芙冰淇淋ya 2024-10-09 09:03:01 阅读 100
1、简介
在Spring Security中,<code>WebSecurityConfigurerAdapter 类是一个配置适配器,它提供了多种 configure
方法的重载,允许开发者以声明性的方式配置Web安全。
2、相关规则
1. configure(WebSecurity web)
此方法用于配置哪些请求应该被Spring Security的过滤器链忽略。这通常用于静态资源(如CSS、JS、图片等),这些资源不需要进行安全认证。
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring()
.antMatchers("/css/**", "/js/**", "/images/**", "/favicon.ico");
}
2. configure(HttpSecurity http)
这是 WebSecurityConfigurerAdapter
中最重要的 configure
方法之一,它用于配置HTTP安全。通过这个方法,你可以定义哪些URL模式需要被保护,以及如何进行身份验证和授权。
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// 启用CSRF保护
.csrf().disable() // 注意:出于示例目的,这里禁用了CSRF保护,实际项目中应启用
// 配置请求授权
.authorizeRequests()
.antMatchers("/login", "/register", "/public/**").permitAll() // 这些URL允许匿名访问
.anyRequest().authenticated() // 其他所有请求都需要认证
.and()
// 配置表单登录
.formLogin()
.loginPage("/login") // 自定义登录页面
.defaultSuccessUrl("/home", true) // 登录成功后的默认跳转页面
.failureUrl("/login-error") // 登录失败后的页面
.permitAll() // 允许所有人访问登录页面
.and()
// 配置登出
.logout()
.logoutUrl("/logout") // 登出请求的URL
.logoutSuccessUrl("/login?logout") // 登出成功后的跳转页面
.permitAll() // 允许所有人访问登出功能
.and()
// 添加HTTP安全头部
.headers()
.frameOptions().deny() // 禁止iframe
.and()
// 会话管理
.sessionManagement()
.invalidSessionUrl("/invalid-session"); // 无效会话时的跳转页面
}
3. configure(AuthenticationManagerBuilder auth)
此方法用于配置认证管理器(AuthenticationManager
),它决定了如何对用户进行身份验证。可以通过它来定义用户信息的来源(如内存、数据库、LDAP等)和密码的加密方式。
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
// 使用内存中的用户进行认证
auth
.inMemoryAuthentication()
.withUser("user").password("{noop}password").roles("USER")
.and()
.withUser("admin").password("{noop}admin").roles("USER", "ADMIN");
// 或者使用自定义的用户详情服务
// auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
上一篇: 手写 p-map(控制并发数以及迭代处理 promise 的库)
下一篇: Flink WebUI解析(待更新)
本文标签
【Spring】springSecurity中WebSecurityConfigurerAdapter类中configure方法(5版本以下)
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。