Class SignAutoConfiguration

java.lang.Object
tech.riemann.nif.starter.security.sign.SignAutoConfiguration

@AutoConfiguration @EnableConfigurationProperties(SignConfigurationProperties.class) public class SignAutoConfiguration extends Object
签名验证自动配置

签名验签为显式 opt-in 能力(默认关闭),用于系统间调用安全: 有需求者配置 enabled: true,提供一个密钥来源 Bean,再在目标接口加 @SignVerify 即可生效;未启用时切面不注册,@SignVerify 仅为无副作用标记注解。

框架不提供任何密钥配置项(无 default-secret / app-secrets / sm2.default-*)。密钥一律由业务方实现以下 SPI 注入, 典型来源为数据库、配置中心或 KMS,避免密钥随配置文件泄漏、也避免"万能钥匙"兜底:

  • AppSecretProvider —— 对称算法(HMAC_SHA256 / SM3)取 secret;
  • AppKeyProvider —— 非对称算法(SM2 / RSA)取密钥对。
两者至少提供一个,否则 enabled=true 时启动失败(fail-fast)。 查不到密钥(返回 null)的 appId 一律验签失败,不做任何兜底放行。

配置示例:

nif:
  web:
    sign:
      enabled: true
      default-expire-seconds: 300
@Bean
public AppSecretProvider appSecretProvider(AppSecretDao dao) {
        return appId -> dao.findSecret(appId); // 未注册的 appId 返回 null,验签直接失败
}
Author:
Kerbores(kerbores@riemann.tech)
  • Constructor Details

    • SignAutoConfiguration

      public SignAutoConfiguration()