Class JwtKeyManager

java.lang.Object
io.github.xezzon.zeroweb.crypto.internal.JwtKeyManager
All Implemented Interfaces:
JwtCryptoService

@Component public class JwtKeyManager extends Object implements JwtCryptoService
JWT 密钥管理器,用于生成、保存和加载 JWT 密钥对以及签发 JWT。
Author:
xezzon
  • Constructor Details

    • JwtKeyManager

      public JwtKeyManager(io.github.xezzon.zeroweb.common.config.ZerowebConfig zerowebConfig)
      依赖注入
      Parameters:
      zerowebConfig - JWT 设置
  • Method Details

    • loadPrivateKey

      @PostConstruct public void loadPrivateKey()

      在应用启动后,加载私钥。

      如果无法找到私钥文件或解析失败,则生成新的密钥对并保存私钥文件。

      加载成功后,将公钥广播出去。

    • signJwt

      public String signJwt(@NonNull io.github.xezzon.zeroweb.auth.JwtClaim claim)
      Description copied from interface: JwtCryptoService
      根据给定的声明生成并签名一个 JWT 字符串。
      Specified by:
      signJwt in interface JwtCryptoService
      Parameters:
      claim - JWT 声明对象
      Returns:
      生成的 JWT 字符串
    • getPublicKey

      public ECPublicKey getPublicKey()
      获取公钥
      Returns:
      返回ECPublicKey类型的公钥
    • printPublicKey

      @EventListener public void printPublicKey(PublicKeyGeneratedEvent event)
      打印公钥到控制台
      Parameters:
      event - 公钥
    • savePublicKeyToClasspath

      @EventListener public void savePublicKeyToClasspath(PublicKeyGeneratedEvent event)
      将公钥保存到文件中(PKCS8)
      Parameters:
      event - 公钥