修改LIQUIBASE的加载方式

This commit is contained in:
dengqichen 2025-12-09 18:07:27 +08:00
parent f77f01689f
commit b2fff8ec8a
6 changed files with 70 additions and 29 deletions

View File

@ -27,6 +27,7 @@ public class SecurityConfig {
private final CustomAuthenticationEntryPoint customAuthenticationEntryPoint;
private final JwtTokenUtil jwtTokenUtil;
private final UserDetailsService userDetailsService;
private final SecurityWhitelistProperties whitelistProperties;
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
@ -37,15 +38,8 @@ public class SecurityConfig {
session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
)
.authorizeHttpRequests(auth -> auth
.requestMatchers(
"/api/v1/user/login",
"/api/v1/user/register",
"/api/v1/tenant/list",
"/api/v1/server-ssh/*/files/**",
"/swagger-ui/**",
"/v3/api-docs/**",
"/actuator/health"
).permitAll()
.requestMatchers(whitelistProperties.getPaths().toArray(new String[0]))
.permitAll()
.anyRequest().authenticated()
)
.addFilterBefore(
@ -61,7 +55,7 @@ public class SecurityConfig {
@Bean
public JwtAuthenticationFilter jwtAuthenticationFilter() {
return new JwtAuthenticationFilter(jwtTokenUtil, userDetailsService);
return new JwtAuthenticationFilter(jwtTokenUtil, userDetailsService, whitelistProperties);
}
@Bean

View File

@ -0,0 +1,25 @@
package com.qqchen.deploy.backend.framework.security.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
/**
* Security 白名单配置属性
*
* @author qqchen
* @since 2025-12-09
*/
@Data
@Component
@ConfigurationProperties(prefix = "security.whitelist")
public class SecurityWhitelistProperties {
/**
* 免认证路径列表
*/
private List<String> paths = new ArrayList<>();
}

View File

@ -7,6 +7,7 @@ import com.qqchen.deploy.backend.framework.enums.ResponseCode;
import com.qqchen.deploy.backend.framework.exception.BusinessException;
import com.qqchen.deploy.backend.framework.exception.JwtAuthenticationException;
import com.qqchen.deploy.backend.framework.exception.SystemException;
import com.qqchen.deploy.backend.framework.security.config.SecurityWhitelistProperties;
import com.qqchen.deploy.backend.framework.security.util.JwtTokenUtil;
import io.jsonwebtoken.ExpiredJwtException;
import io.jsonwebtoken.MalformedJwtException;
@ -27,8 +28,6 @@ import org.springframework.web.filter.OncePerRequestFilter;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;
@Slf4j
@RequiredArgsConstructor
@ -38,19 +37,12 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
private final UserDetailsService userDetailsService;
private static final List<String> WHITELIST = Arrays.asList(
"/api/v1/user/login",
"/api/v1/user/register",
"/api/v1/tenant/list",
"/swagger-ui/**",
"/v3/api-docs/**",
"/actuator/health"
);
private final SecurityWhitelistProperties whitelistProperties;
@Override
protected boolean shouldNotFilter(HttpServletRequest request) {
String path = request.getServletPath();
return WHITELIST.stream().anyMatch(path::startsWith);
return whitelistProperties.getPaths().stream().anyMatch(path::startsWith);
}
@Override

View File

@ -149,6 +149,18 @@ jwt:
secret: 'thisIsAVeryVerySecretKeyForJwtTokenGenerationAndValidation123456789'
expiration: 86400
# Security 白名单配置
security:
whitelist:
paths:
- /api/v1/user/login
- /api/v1/user/register
- /api/v1/tenant/list
- /api/v1/server-ssh/*/files/**
- /swagger-ui/**
- /v3/api-docs/**
- /actuator/**
jackson:
time-zone: Asia/Shanghai

View File

@ -145,6 +145,18 @@ jwt:
secret: 'thisIsAVeryVerySecretKeyForJwtTokenGenerationAndValidation123456789'
expiration: 86400
# Security 白名单配置
security:
whitelist:
paths:
- /api/v1/user/login
- /api/v1/user/register
- /api/v1/tenant/list
- /api/v1/server-ssh/*/files/**
- /swagger-ui/**
- /v3/api-docs/**
- /actuator/**
jackson:
time-zone: Asia/Shanghai

View File

@ -14,14 +14,20 @@ VALUES (
'system', NOW(), 'system', NOW(), 1, 0,
1.12, 'ALL', NOW(),
'【后端】
- //DEBUG
- HikariCP连接泄漏检测阈值35Jenkins构建轮询时长
- SSHJ底层日志屏蔽Transport/SecureRandom等无业务价值日志降级为WARN
- INFO便
- Liquibase配置includeAll只扫描XML文件SQL重复执行
- JVMCPU线
- Actuator监控端点threaddump/heapdump/env/loggers
- lukuan及角色绑定/
- //DEBUG
- HikariCP泄漏检测阈值调整为35分钟Jenkins构建轮询时长
- SSH日志优化SSHJ底层日志降级为WARNTransport/SecureRandom等无业务价值日志
- INFO便
- Liquibase优化XML/SQL分离changes/XMLsql/SQL
- Security优化SecurityConfig/JwtAuthenticationFilter统一使用配置文件管理免认证路径
- "系统指标"JVMCPU线
- Actuator集成health/metrics/threaddump/heapdump/env/loggers
- SecurityWhitelistProperties配置类Security白名单
- JVM内存CPU线GC30
- 线线
- GB
- Actuator接口代理和调用方式/actuator代理配置
',
0, NULL, NULL, 0
);