Class ComponentSecurityAutoConfiguration
java.lang.Object
com.codeupsoft.component.security.autoconfigure.ComponentSecurityAutoConfiguration
@AutoConfiguration
@EnableConfigurationProperties({ComponentSecurityProperties.class,SecurityAuthenticateProperties.class})
@ConditionalOnProperty(prefix="codeupsoft.component.security",
name="auto-configure",
havingValue="true",
matchIfMissing=true)
public class ComponentSecurityAutoConfiguration
extends Object
组件安全自动配置类.
负责自动配置安全组件相关功能,包括启用配置属性等. 该类使用Spring Boot的自动配置机制,在满足条件时自动注册安全相关的Bean.
- Author:
- Liu,Dongdong
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionanonymousAccessHandler(org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping requestMappingHandlerMapping, org.springframework.core.env.Environment environment) 匿名访问处理器Bean.org.springframework.security.crypto.password.PasswordEncoder配置密码编码器.权限服务Bean.redisSecurityAuthenticateUserService(com.codeupsoft.component.redis.client.RedisTemplateClient redisTemplateClient, SecurityJwtHandler securityJwtHandler) 基于Redis的安全认证用户服务Bean.访问拒绝处理器Bean.认证入口点处理器Bean.org.springframework.boot.web.servlet.FilterRegistrationBean<SecurityControllerFilter> securityControllerFilter(ComponentSecurityProperties componentSecurityProperties, SecurityAuthenticateService securityAuthenticateService, SecurityAuthenticateUserService securityAuthenticateUserService) 安全认证控制器过滤器Bean.org.springframework.security.web.SecurityFilterChainsecurityFilterChain(org.springframework.security.config.annotation.web.builders.HttpSecurity httpSecurity, SecurityAuthenticateUserService authenticateUserService, SecurityAccessDeniedHandler securityAccessDeniedHandler, SecurityAuthenticationEntryPoint securityAuthenticationEntryPoint, SecurityLogoutSuccessHandler securityLogoutSuccessHandler, AnonymousAccessHandler anonymousAccessHandler) Spring Security过滤器链配置Bean.默认JWT处理器Bean.securityLogoutSuccessHandler(SecurityAuthenticateUserService securityAuthenticateUserService) 退出登录成功处理器Bean.基于Session的安全认证用户服务Bean.
-
Constructor Details
-
ComponentSecurityAutoConfiguration
public ComponentSecurityAutoConfiguration()
-
-
Method Details
-
permissionService
权限服务Bean.提供权限检查和管理功能的服务实例,用于验证用户是否具有访问特定资源的权限.
- Returns:
- 权限服务实例
-
securityJwtHandler
@Bean @ConditionalOnMissingBean(SecurityJwtHandler.class) public SecurityJwtHandler securityJwtHandler()默认JWT处理器Bean.提供JWT令牌的生成、验证和解析功能的默认实现.
- Returns:
- 默认JWT处理器实例
-
redisSecurityAuthenticateUserService
@Bean @ConditionalOnBean(com.codeupsoft.component.redis.client.RedisTemplateClient.class) @ConditionalOnMissingBean(SecurityAuthenticateUserService.class) @ConditionalOnProperty(prefix="codeupsoft.component.security.authenticate", name="redis-auto-enabled", havingValue="true") public SecurityAuthenticateUserService redisSecurityAuthenticateUserService(com.codeupsoft.component.redis.client.RedisTemplateClient redisTemplateClient, SecurityJwtHandler securityJwtHandler) 基于Redis的安全认证用户服务Bean.当Redis客户端存在且Redis认证启用时,提供基于Redis的用户认证服务实现. 该实现使用JWT令牌结合Redis存储用户信息,实现高效的用户认证和会话管理.
- Parameters:
redisTemplateClient- Redis模板客户端securityJwtHandler- JWT处理器- Returns:
- 基于Redis的安全认证用户服务实例
-
sessionSecurityAuthenticateUserService
@Bean @ConditionalOnMissingBean(SecurityAuthenticateUserService.class) @ConditionalOnProperty(prefix="codeupsoft.component.security.authenticate", name="redis-auto-enabled", havingValue="false", matchIfMissing=true) public SecurityAuthenticateUserService sessionSecurityAuthenticateUserService()基于Session的安全认证用户服务Bean.当Redis认证未启用时,提供基于Session的用户认证服务实现. 该实现使用传统的Session机制管理用户会话.
- Returns:
- 基于Session的安全认证用户服务实例
-
securityAuthenticateService
-
anonymousAccessHandler
@Bean @ConditionalOnMissingBean(AnonymousAccessHandler.class) public AnonymousAccessHandler anonymousAccessHandler(@Qualifier("requestMappingHandlerMapping") org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping requestMappingHandlerMapping, org.springframework.core.env.Environment environment) 匿名访问处理器Bean.用于扫描和处理标记了@AnonymousAccess注解的控制器和方法, 根据环境配置动态构建允许匿名访问的路径列表.
- Parameters:
requestMappingHandlerMapping- 请求映射处理器environment- 环境配置- Returns:
- 匿名访问处理器实例
-
securityAccessDeniedHandler
@Bean @ConditionalOnMissingBean(SecurityAccessDeniedHandler.class) public SecurityAccessDeniedHandler securityAccessDeniedHandler()访问拒绝处理器Bean.当用户访问无权限的资源时,返回403禁止访问错误信息. 将错误信息以JSON格式返回给客户端.
- Returns:
- 访问拒绝处理器实例
-
securityAuthenticationEntryPoint
@Bean @ConditionalOnMissingBean(SecurityAuthenticationEntryPoint.class) public SecurityAuthenticationEntryPoint securityAuthenticationEntryPoint()认证入口点处理器Bean.当用户未认证或认证失败时,返回401未授权错误信息. 将错误信息以JSON格式返回给客户端.
- Returns:
- 认证入口点处理器实例
-
securityLogoutSuccessHandler
@Bean @ConditionalOnMissingBean(SecurityLogoutSuccessHandler.class) public SecurityLogoutSuccessHandler securityLogoutSuccessHandler(SecurityAuthenticateUserService securityAuthenticateUserService) 退出登录成功处理器Bean.当用户成功登出时,清理用户会话信息并返回成功响应. 将成功信息以JSON格式返回给客户端.
- Parameters:
securityAuthenticateUserService- 安全认证用户服务- Returns:
- 退出登录成功处理器实例
-
passwordEncoder
@Bean @ConditionalOnMissingBean public org.springframework.security.crypto.password.PasswordEncoder passwordEncoder()配置密码编码器.使用BCrypt算法进行密码加密,提供安全的密码存储方案.
- Returns:
- BCrypt密码编码器
-
securityControllerFilter
@Bean @ConditionalOnMissingBean(SecurityControllerFilter.class) @ConditionalOnProperty(prefix="codeupsoft.component.security", name="controller-filter-enabled", havingValue="true") public org.springframework.boot.web.servlet.FilterRegistrationBean<SecurityControllerFilter> securityControllerFilter(ComponentSecurityProperties componentSecurityProperties, SecurityAuthenticateService securityAuthenticateService, SecurityAuthenticateUserService securityAuthenticateUserService) 安全认证控制器过滤器Bean.处理登录请求,验证用户身份并生成访问令牌. 该过滤器拦截指定的登录URL,解析请求参数,调用认证服务进行用户验证, 成功后生成并返回访问令牌.
- Parameters:
componentSecurityProperties- 组件安全配置属性securityAuthenticateService- 安全认证服务securityAuthenticateUserService- 安全认证用户服务- Returns:
- 安全认证控制器过滤器注册Bean
-
securityFilterChain
@Bean @ConditionalOnMissingBean @ConditionalOnProperty(prefix="codeupsoft.component.security.filter-chain", name="enabled", havingValue="true", matchIfMissing=true) public org.springframework.security.web.SecurityFilterChain securityFilterChain(org.springframework.security.config.annotation.web.builders.HttpSecurity httpSecurity, SecurityAuthenticateUserService authenticateUserService, SecurityAccessDeniedHandler securityAccessDeniedHandler, SecurityAuthenticationEntryPoint securityAuthenticationEntryPoint, SecurityLogoutSuccessHandler securityLogoutSuccessHandler, AnonymousAccessHandler anonymousAccessHandler) Spring Security过滤器链配置Bean.配置Spring Security的过滤器链,包括CSRF处理、会话管理、请求授权配置、异常处理和登出配置等. 根据配置文件中的设置动态调整安全策略,支持白名单路径配置和匿名访问路径配置.
- Parameters:
httpSecurity- HttpSecurity对象,用于构建安全配置authenticateUserService- 安全认证用户服务securityAccessDeniedHandler- 访问被拒绝处理器securityAuthenticationEntryPoint- 未授权访问处理器securityLogoutSuccessHandler- 登出成功处理器anonymousAccessHandler- 匿名访问处理器- Returns:
- 配置完成的SecurityFilterChain实例
-