Class PKCEGenerator

java.lang.Object
tech.riemann.nif.oidc.service.PKCEGenerator

public class PKCEGenerator extends Object
PKCE(Proof Key for Code Exchange)代码验证器生成器

用于OAuth 2.0 PKCE扩展,提供代码挑战(code_challenge)的生成功能

PKCE流程: 1. 客户端生成code_verifier(随机字符串) 2. 使用此工具生成code_challenge = BASE64URL(SHA256(code_verifier)) 3. 在授权请求中携带code_challenge 4. 在Token请求中携带code_verifier进行验证

使用示例:

String codeVerifier = "random-string-generated-by-client";
String codeChallenge = PKCEGenerator.generateCodeChallenge(codeVerifier);
Author:
Kerbores(kerbores@riemann.tech)
  • Constructor Details

    • PKCEGenerator

      public PKCEGenerator()
  • Method Details

    • generateCodeChallenge

      public static String generateCodeChallenge(String codeVerifier)
      根据code_verifier生成code_challenge

      使用SHA-256算法对code_verifier进行哈希运算,然后进行Base64 URL安全编码

      Parameters:
      codeVerifier - 代码验证器(随机字符串)
      Returns:
      code_challenge(Base64 URL编码的SHA-256哈希值)
      Throws:
      RuntimeException - 如果SHA-256算法不可用