当前位置: 首页 > wzjs >正文

浏览器主页苏州关键词优化搜索排名

浏览器主页,苏州关键词优化搜索排名,做网站前段用什么软件,文化传媒有限公司以下是 Spring Security 的核心配置项详解,涵盖认证、授权、过滤器链、HTTP安全设置等关键配置,结合 Spring Boot 3.x 版本最佳实践: 1. 核心注解与配置类 (1) 启动安全配置 // 启动Web安全配置(推荐方式) Configura…

以下是 Spring Security 的核心配置项详解,涵盖认证、授权、过滤器链、HTTP安全设置等关键配置,结合 Spring Boot 3.x 版本最佳实践


1. 核心注解与配置类

(1) 启动安全配置
// 启动Web安全配置(推荐方式)
@Configuration
@EnableWebSecurity  // 启用Web安全配置
public class SecurityConfig {// 定义SecurityFilterChain Bean
}
  • @EnableWebSecurity
    • 启用安全框架,自动配置默认的安全过滤器链。
    • 替代旧版 WebSecurityConfigurerAdapter(已弃用)。

(2) 方法级安全
// 启用方法注解(如@PreAuthorize)
@EnableMethodSecurity  // Spring Security 5.7+ 版本
public class MethodSecurityConfig {
}
  • @EnableMethodSecurity
    • 支持 @PreAuthorize@PostFilter@Secured 等注解,实现方法级权限控制。

2. 安全过滤器链(SecurityFilterChain)

(1) 基础配置
@Configuration
public class SecurityConfig {@Beanpublic SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {http// 配置HTTP安全选项.authorizeRequests(authz -> authz.antMatchers("/public/**").permitAll()    // 公开接口.antMatchers("/admin/**").hasRole("ADMIN") // 需ADMIN角色.anyRequest().authenticated()             // 其他接口需认证).formLogin()  // 启用表单登录.httpBasic()  // 启用HTTP Basic认证.csrf(csrf -> csrf.disable()); // 禁用CSRF(测试环境)return http.build();}
}

(2) 关键配置项详解
配置项作用代码示例
authorizeRequests定义URL权限规则.antMatchers("/api/**").authenticated()
formLogin配置表单登录.formLogin().loginPage("/login").permitAll()
httpBasic启用HTTP Basic认证.httpBasic().disable()
csrf配置CSRF防护.csrf().disable().csrf().requireCsrfProtectionMatcher(...)
rememberMe启用“记住我”功能.rememberMe().key("uniqueKey").tokenValiditySeconds(86400)
logout配置退出登录.logout().logoutUrl("/logout").logoutSuccessUrl("/")
sessionManagement会话管理(如会话固定、超时).sessionManagement().maximumSessions(1)
oauth2Login配置OAuth2登录.oauth2Login().loginPage("/login").defaultSuccessUrl("/home")
securityContext安全上下文配置(如会话持久化).securityContext().requireExplicitSave()

3. 认证配置

(1) 用户认证源
// 内存用户配置
@Bean
public InMemoryUserDetailsManager userDetailsService() {return new InMemoryUserDetailsManager(User.withDefaultPasswordEncoder().username("user").password("password").roles("USER").build());
}
(2) 自定义用户DetailsService
@Service
public class DatabaseUserDetailsService implements UserDetailsService {@Overridepublic UserDetails loadUserByUsername(String username) {// 从数据库加载用户User user = userRepository.findByUsername(username);return new org.springframework.security.core.userdetails.User(user.getUsername(),user.getPassword(),AuthorityUtils.createAuthorityList(user.getRoles()));}
}
(3) 密码编码器
@Bean
public PasswordEncoder passwordEncoder() {return new BCryptPasswordEncoder();
}

4. 过滤器与拦截器

(1) 自定义Filter
@Component
public class CustomFilter implements Filter {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {// 自定义逻辑(如Token解析)chain.doFilter(request, response);}
}// 注册到FilterChain
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) {http.addFilterBefore(new CustomFilter(), UsernamePasswordAuthenticationFilter.class);return http.build();
}
(2) 过滤器顺序

Spring Security 默认过滤器顺序(部分关键Filter):

  1. ChannelProcessingFilter:处理协议强制(如HTTPS)。
  2. WebAsyncManagerIntegrationFilter:处理异步请求。
  3. SecurityContextPersistenceFilter:保存/恢复安全上下文。
  4. HeaderWriterFilter:添加安全头(如X-Content-Type-Options)。
  5. CsrfFilter:处理CSRF令牌。
  6. LogoutFilter:处理退出请求。
  7. UsernamePasswordAuthenticationFilter:表单登录认证。
  8. OAuth2LoginAuthenticationFilter:OAuth2登录认证。

5. 异常处理

(1) 未认证处理
@Bean
public AuthenticationEntryPoint authenticationEntryPoint() {return (request, response, authException) ->response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "未认证");
}
(2) 无权限处理
@Bean
public AccessDeniedHandler accessDeniedHandler() {return (request, response, accessDeniedException) ->response.sendError(HttpServletResponse.SC_FORBIDDEN, "无权限");
}

6. 高级配置

(1) OAuth2资源服务器
@Configuration
public class OAuth2Config {@Beanpublic SecurityFilterChain resourceServerSecurityFilterChain(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/api/**").authenticated().and().oauth2ResourceServer().jwt(); // 启用JWT解析return http.build();}
}
(2) 动态权限(ABAC)
// 自定义权限表达式
@Configuration
@EnableMethodSecurity(prePostEnabled = true)
public class MethodSecurityConfig extends GlobalMethodSecurityConfiguration {@Overrideprotected MethodSecurityExpressionHandler createExpressionHandler() {DefaultMethodSecurityExpressionHandler handler = new DefaultMethodSecurityExpressionHandler();handler.setPermissionEvaluator(new CustomPermissionEvaluator());return handler;}
}

7. 关键配置总结表格

配置类型配置项作用代码示例
认证userDetailsService定义用户信息来源(数据库/内存)@Bean DatabaseUserDetailsService
密码passwordEncoder密码编码器(如BCrypt)@Bean BCryptPasswordEncoder()
HTTP安全authorizeRequests定义URL权限规则.antMatchers("/api/**").hasRole("USER")
登录formLogin表单登录配置.formLogin().loginPage("/login")
退出logout退出登录配置.logout().logoutUrl("/logout")
CSRFcsrf开启/禁用CSRF防护.csrf().disable()
会话管理sessionManagement会话超时、并发控制.sessionManagement().invalidSessionUrl("/login")
OAuth2登录oauth2Login配置OAuth2登录(如Google、GitHub).oauth2Login().clientId("your-client-id")
方法级安全@EnableMethodSecurity启用方法注解(@PreAuthorize@EnableMethodSecurity(prePostEnabled = true)
自定义FilteraddFilterBefore/After注册自定义Filter到FilterChainhttp.addFilterBefore(new CustomFilter(), UsernamePasswordAuthenticationFilter.class)

8. 常见问题与解决

  1. 随机生成密码问题

    • 日志:Using generated security password:
    • 解决:添加 management.security.enabled=false 禁用默认安全配置。
  2. CSRF跨域问题

    • 在前端请求头中添加 X-XSRF-TOKENCookie
  3. JWT Token配置

    • 需添加 spring-boot-starter-oauth2-resource-server 依赖,并配置密钥。

9. 总结

Spring Security 的配置项覆盖了从 认证、授权、过滤器链高级安全策略 的所有场景,核心是通过 SecurityFilterChain 定义安全规则。在 Spring Boot 3.x 中,需避免使用已弃用的 WebSecurityConfigurerAdapter,转而直接创建 SecurityFilterChain Bean。通过灵活组合配置项,可满足从简单到复杂的系统安全需求。

http://www.dtcms.com/wzjs/452706.html

相关文章:

  • 房地产网站cms成都营销型网站制作
  • 网站开发运营费用百度企业
  • 湘潭网络公司网站建设拼多多关键词排名在哪里看
  • 仙居建设规划局网站新人跑业务怎么找客户
  • 建设银行房有e通网站厉害的seo顾问
  • 金花站长工具怎么做关键词排名靠前
  • 广州网站制作工作室今天刚刚发生的重大新闻
  • 17.zwd一起做网站企业培训计划
  • 怎样做旅游视频网站seo代理
  • 企业如何选择网站镇江网站建设企业
  • 叮当快药网站谁做的网站建设制作免费
  • WordPress头像美化插件seo关键字优化技巧
  • 普通网站能不能用vue做几个小功能湖南网站建设推广
  • 网站制作的部分数据分析培训机构哪家好
  • 福州网站建设推进网站搜索引擎优化案例
  • 做音乐网站首页要求东莞seo整站优化火速
  • 金融企业网站制作关键词seo报价
  • 中山网站建设文化渠道某网站搜索引擎优化
  • 郑州建立网站100种宣传方式
  • 大画册设计网站网络营销案例分析题及答案
  • 网站维护英文运营怎么做
  • 惠州建设网站网络整合营销方案ppt
  • 国外网站怎样建设如何宣传网站
  • 网站 被黑品牌营销策划网站
  • 江苏华江建设集团有限公司网站百度关键词检测工具
  • 完善企业网站建设搜外seo
  • 作为一个大学生网站 应该怎么做专业软文平台
  • 投票网站怎么做网页制作代码大全
  • 如何利用js来做网站表单网络文章发布平台
  • 网站备案号怎么做超链接seo 优化案例