Skip to content

核心工具(forge-starter-core)

工程位置:forge-server/forge-framework/forge-starter-parent/forge-starter-core。Maven artifactIdforge-starter-coresrc/main/java 里有 33 个 Java 文件。

引入

xml
<dependency>
    <groupId>com.mdframe.forge</groupId>
    <artifactId>forge-starter-core</artifactId>
</dependency>

自动装配

META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 登记了:

  • com.mdframe.forge.starter.core.config.ExceptionAutoConfiguration
  • com.mdframe.forge.starter.core.config.JacksonConfig

配置属性

forge.democom.mdframe.forge.starter.core.context.DemoProperties

字段类型类内默认值说明
enabledBooleanfalse是否启用演示模式
messageString"演示环境禁止修改操作"演示环境提示消息
whitelistUrlsList&lt;String&gt;new ArrayList&lt;&gt;()白名单URL列表(支持通配符)
blockedMethodsList&lt;String&gt;Arrays.asList( "POST", "PUT", "DELETE", "PATCH" )拦截的HTTP方法

forge.authcom.mdframe.forge.starter.core.context.AuthProperties

字段类型类内默认值说明
enableApiPermissionBooleantrue是否启用API接口权限校验 默认启用
apiPermissionExcludePathsString[]new String[]{ "/auth/**" }API权限校验排除路径(支持通配符)
enableLoginLockBooleantrue是否启用登录失败锁定功能 默认启用
maxLoginAttemptsInteger4最大登录失败尝试次数 默认4次,可通过 sys_config 配置覆盖
lockDurationLong30L账号锁定时长(分钟) 默认30分钟,可通过 sys_config 配置覆盖
failRecordExpireLong15L登录失败记录保留时长(分钟) 在此时间内的失败次数会累计 默认15分钟
sameAccountLoginStrategyString"replace_old"同一账号登录策略 - allow_concurrent: 允许并发登录 - replace_old: 新登录踢出旧登录(默认) - reject_new: 拒绝新登录
enableOnlineUserManagementBooleantrue是否启用在线用户管理 默认启用
enableClientValidationBooleantrue客户端验证兼容配置。
enableLegacyClientSecretReadBooleantrue是否允许读取历史明文客户端密钥。 完成存量盘点和机会式升级后应关闭。

forge.cryptocom.mdframe.forge.starter.core.context.CryptoProperties

字段类型类内默认值说明
enabledBooleantrue是否启用加密功能
algorithmString"SM4"默认加密算法 (SM4/AES)
secretKeyString对称加密密钥 (Base64编码,16字节) 当启用动态密钥时,此配置作为降级方案
enableDynamicKeyBooleantrue是否启用动态密钥协商
rsaPublicKeyStringRSA 公钥(Base64编码,可选,不配置则自动生成)
rsaPrivateKeyStringRSA 私钥(Base64编码,可选,不配置则自动生成)
sessionKeyExpireLong7200L会话密钥过期时间(秒),默认2小时
enableApiCryptoBooleantrue是否启用API级加解密
enableFieldCryptoBooleantrue是否启用字段级加解密
enableReplayProtectionBooleanfalse是否启用防重放攻击保护
replayTimeWindowLong300L防重放时间窗口(秒)
replayIncludePathsList&lt;String&gt;new ArrayList&lt;&gt;()防重放包含路径
replayExcludePathsList&lt;String&gt;new ArrayList&lt;&gt;(List.of( "/auth/captcha", "/auth/captcha/**", "/auth/loginConfig", "/crypto/public-key" ))防重放排除路径(默认排除验证码相关接口)
excludePathsList&lt;String&gt;new ArrayList&lt;&gt;()API加解密排除路径
enableDesensitizeBooleantrue是否启用字段脱敏
persistencePersistencePropertiesnew PersistenceProperties()持久化密文密钥配置。只服务数据库持久化密文,不改变浏览器会话密钥协议。
enabledBooleantrue是否启用持久化密文服务
writeVersionedBooleanfalse是否写入 FPC1 版本化密文。首次兼容发布默认 false。
legacyReadEnabledBooleantrue是否允许读取旧无版本密文
activeKeyIdString新写入使用的活动 keyId
activeKeyString新写入使用的活动密钥,Base64 编码
legacyKeyString旧无版本密文兼容密钥,Base64 编码
keysMap&lt;String, String&gt;new LinkedHashMap&lt;&gt;()历史解密密钥,key 为 keyId,value 为 Base64 编码密钥

forge.logcom.mdframe.forge.starter.core.context.LogProperties

字段类型类内默认值说明
enableOperationLogBooleantrue是否启用操作日志
enableLoginLogBooleantrue是否启用登录日志
requestParamsMaxLengthInteger2000请求参数最大长度(超过则截断)
responseResultMaxLengthInteger2000响应结果最大长度(超过则截断)
excludePathsString[]new String[]{ "/auth/captcha", "/auth/login", "/auth/register", "/auth/changePassword", "/auth/resetPassword", "/auth/online/kickout", "/auth/online/batchKickout", "/oauth2/**", "/openapi/v1/capabilities/**", "/actuator/**", "/swagger-ui/**", "/v3/api-docs/**" }排除的URL路径(不记录操作日志)
printOperationLogBooleanfalse是否在控制台打印操作日志
printLoginLogBooleantrue是否在控制台打印登录日志
threadPoolCoreSizeInteger2线程池核心线程数
threadPoolMaxSizeInteger5线程池最大线程数
threadPoolQueueCapacityInteger500线程池队列容量

类内默认值不是官方启动配置。各服务 application.yml 可以覆盖。

注解

@IgnoreTenant

com.mdframe.forge.starter.core.annotation.tenant.IgnoreTenant

成员类型默认值说明
valuebooleantrue是否忽略租户

@ApiEncrypt

com.mdframe.forge.starter.core.annotation.crypto.ApiEncrypt

成员类型默认值说明
algorithmString""加密算法,默认使用配置文件中的算法

@ApiDecrypt

com.mdframe.forge.starter.core.annotation.crypto.ApiDecrypt

成员类型默认值说明
algorithmString""解密算法,默认使用配置文件中的算法

@RefreshScope

com.mdframe.forge.starter.core.annotation.config.RefreshScope

没有成员。

@ApiPermissionIgnore

com.mdframe.forge.starter.core.annotation.api.ApiPermissionIgnore

没有成员。

@OperationLog

com.mdframe.forge.starter.core.annotation.log.OperationLog

成员类型默认值说明
moduleString""操作模块
typeOperationTypeOperationType.OTHER操作类型
descString""操作描述
saveRequestParamsbooleantrue是否保存请求参数
saveResponseResultbooleantrue是否保存响应结果

源码类型清单

下面只列 forge-starter-core 自己的公开类型。

枚举

  • EnableStatus
  • FlowEventType
  • OperationType

  • AuthProperties
  • BaseEntity
  • BigNumberSerializer
  • BusinessException
  • CryptoDeploymentSecretPolicy
  • CryptoProperties
  • DemoController
  • DemoInterceptor
  • DemoProperties
  • DemoWebMvcConfig
  • ExceptionAutoConfiguration
  • ExceptionUtil
  • ExecutionIdentityContextHolder
  • FlowEventMessage
  • GlobalExceptionHandler
  • JacksonConfig
  • LogProperties
  • LoginUser
  • PageParamResolver
  • PageQuery
  • RespInfo
  • SensitiveDataUtil
  • SessionHelper

相关文档