Class SignVerifier
java.lang.Object
tech.riemann.nif.web.sign.SignVerifier
签名验证器
负责验证请求签名的有效性
验证流程: 1. 提取所有请求参数 2. 根据算法获取对应的签名生成器 3. 使用密钥验证签名
- Author:
- Kerbores(kerbores@riemann.tech)
-
Constructor Summary
ConstructorsConstructorDescriptionSignVerifier(List<SignGenerator> signGenerators, AppSecretProvider appSecretProvider) SignVerifier(List<SignGenerator> signGenerators, AppSecretProvider appSecretProvider, AppKeyProvider appKeyProvider) -
Method Summary
-
Constructor Details
-
SignVerifier
-
SignVerifier
public SignVerifier(List<SignGenerator> signGenerators, AppSecretProvider appSecretProvider, AppKeyProvider appKeyProvider)
-
-
Method Details
-
verify
public boolean verify(Map<String, String> params, String sign, String appId, SignAlgorithm algorithm, String timestamp, String requestPath, String nonce) 验证签名策略路由: - 对称算法(HMAC / SM3)使用
AppSecretProvider取出的 secret; - 非对称算法(SM2 / RSA)使用AppKeyProvider取出的公钥验签。- Parameters:
params- 请求参数sign- 签名值appId- 应用IDalgorithm- 签名算法timestamp- 时间戳(秒)requestPath- 请求路径nonce- 随机字符串- Returns:
- 验证通过返回 true
-
extractParams
-
getSecret
-