Class Jwks
java.lang.Object
tech.riemann.nif.auth.jwt.Jwks
JWK(JSON Web Key)工具类
提供JWK密钥的生成、加载和管理功能
支持的密钥类型: 1. HMAC - 对称密钥,用于HS256/HS384/HS512算法 2. RSA - 非对称密钥,用于RS256/RS384/RS512/PS256/PS384/PS512算法 3. EC - 椭圆曲线密钥,用于ES256/ES256K/ES384/ES512算法 4. EdDSA - Edwards曲线密钥,用于Ed25519/Ed448算法
存储格式: - 使用标准JWKSet格式:{"keys":[{jwk对象}]} - Base64编码后存储到文件
使用示例:
// 生成RSA密钥
Jwks.gen("/path/to/keystore", JWSAlgorithm.RS256, 2048, null, "my-key-id");
// 加载密钥
JWK jwk = Jwks.load("/path/to/keystore", "my-key-id");
// 从字符串加载
JWK jwk = Jwks.loadFromString(jwkString, "my-key-id");
- Author:
- Kerbores(kerbores@riemann.tech)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncom.nimbusds.jose.jwk.gen.JWKGenerator<com.nimbusds.jose.jwk.ECKey> ecGenerator(com.nimbusds.jose.JWSAlgorithm jwsAlgorithm, com.nimbusds.jose.jwk.Curve curve, String keyId) com.nimbusds.jose.jwk.gen.JWKGenerator<com.nimbusds.jose.jwk.OctetKeyPair> eddsaGenerator(com.nimbusds.jose.JWSAlgorithm jwsAlgorithm, com.nimbusds.jose.jwk.Curve curve, String keyId) voidgen(String keyStorePath, com.nimbusds.jose.JWSAlgorithm jwsAlgorithm, int length, com.nimbusds.jose.jwk.Curve curve, String keyId) 生成密钥,以标准JWKSet格式存储到keyStorePath 存储格式: Base64编码的 {"keys":[{jwk对象}]}com.nimbusds.jose.jwk.gen.JWKGenerator<com.nimbusds.jose.jwk.OctetSequenceKey> hmacGenerator(com.nimbusds.jose.JWSAlgorithm jwsAlgorithm, int length, String keyId) com.nimbusds.jose.jwk.JWK从文件加载JWKSet,根据kid查找对应的JWK 如果kid为空,返回第一个JWK 支持向后兼容: 自动识别标准JWKSet格式和旧版单个JWK格式com.nimbusds.jose.jwk.JWKloadFromString(String jwkInfo, String kid) 从字符串加载JWKSet,根据kid查找对应的JWK 如果kid为空,返回第一个JWK 支持向后兼容: 自动识别标准JWKSet格式和旧版单个JWK格式com.nimbusds.jose.jwk.gen.JWKGenerator<com.nimbusds.jose.jwk.RSAKey> rsaGenerator(com.nimbusds.jose.JWSAlgorithm jwsAlgorithm, int length, String keyId)
-
Constructor Details
-
Jwks
public Jwks()
-
-
Method Details
-
hmacGenerator
public com.nimbusds.jose.jwk.gen.JWKGenerator<com.nimbusds.jose.jwk.OctetSequenceKey> hmacGenerator(com.nimbusds.jose.JWSAlgorithm jwsAlgorithm, int length, String keyId) -
ecGenerator
public com.nimbusds.jose.jwk.gen.JWKGenerator<com.nimbusds.jose.jwk.ECKey> ecGenerator(com.nimbusds.jose.JWSAlgorithm jwsAlgorithm, com.nimbusds.jose.jwk.Curve curve, String keyId) -
eddsaGenerator
public com.nimbusds.jose.jwk.gen.JWKGenerator<com.nimbusds.jose.jwk.OctetKeyPair> eddsaGenerator(com.nimbusds.jose.JWSAlgorithm jwsAlgorithm, com.nimbusds.jose.jwk.Curve curve, String keyId) -
rsaGenerator
public com.nimbusds.jose.jwk.gen.JWKGenerator<com.nimbusds.jose.jwk.RSAKey> rsaGenerator(com.nimbusds.jose.JWSAlgorithm jwsAlgorithm, int length, String keyId) -
gen
public void gen(String keyStorePath, com.nimbusds.jose.JWSAlgorithm jwsAlgorithm, int length, com.nimbusds.jose.jwk.Curve curve, String keyId) 生成密钥,以标准JWKSet格式存储到keyStorePath 存储格式: Base64编码的 {"keys":[{jwk对象}]}- Parameters:
keyStorePath- keyStore路径jwsAlgorithm- 签名算法length- 秘钥长度curve- 曲线keyId- key id
-
load
-
loadFromString
-