Module bus.auth

Class Builder

java.lang.Object
org.miaixz.bus.auth.Builder

public class Builder extends Object
URL 构造工具类,支持 OAuth 相关功能。 提供方法以构建带查询参数的 URL、处理 OAuth 签名、生成 PKCE 校验码等功能,用于认证流程。
Since:
Java 17+
Author:
Kimi Liu
  • Field Details

  • Method Details

    • fromUrl

      public static Builder fromUrl(String baseUrl)
      从基础 URL 创建 Builder 实例。
      Parameters:
      baseUrl - 基础 URL
      Returns:
      新创建的 Builder 实例
    • parseStringToMap

      public static Map<String,String> parseStringToMap(String text)
      将字符串解析为键值对映射,字符串格式为 key=value&key=value
      Parameters:
      text - 待解析的字符串
      Returns:
      键值对映射
    • parseMapToString

      public static String parseMapToString(Map<String,String> map, boolean encode)
      将键值对映射转换为字符串,格式为 key=value&key=value
      Parameters:
      map - 待转换的映射
      encode - 是否对值进行 URL 编码
      Returns:
      转换后的字符串,若映射为空则返回空字符串
    • sign

      public static byte[] sign(byte[] key, byte[] data, String algorithm)
      生成 HMAC 签名。
      Parameters:
      key - 签名密钥
      data - 待签名数据
      algorithm - 签名算法(如 HMAC-SHA1)
      Returns:
      签名字节数组
      Throws:
      org.miaixz.bus.core.lang.exception.AuthorizedException - 如果算法不支持或密钥无效
    • codeVerifier

      public static String codeVerifier()
      生成 OAuth 2.0 PKCE 的校验码验证器(code verifier)。
      Returns:
      Base64 URL 安全的随机字符串
    • codeChallenge

      public static String codeChallenge(String codeChallengeMethod, String codeVerifier)
      生成 OAuth 2.0 PKCE 的校验码(code challenge)。 参考:https://tools.ietf.org/html/rfc7636#section-4.2
      Parameters:
      codeChallengeMethod - 校验方法(s256 或 plain)
      codeVerifier - 客户端生成的校验码验证器
      Returns:
      校验码
    • digest

      public static byte[] digest(String str)
      使用 SHA-256 算法对字符串进行摘要。
      Parameters:
      str - 待摘要的字符串
      Returns:
      摘要字节数组,若算法不可用则返回 null
    • build

      public String build()
      构造 URL,不对参数值进行编码。
      Returns:
      构造完成的 URL
    • build

      public String build(boolean encode)
      构造 URL,可选择是否对参数值进行编码。
      Parameters:
      encode - 是否对参数值进行 URL 编码
      Returns:
      构造完成的 URL
    • getReadOnlyParams

      public Map<String,Object> getReadOnlyParams()
      获取只读的参数映射。
      Returns:
      不可修改的参数映射
    • queryParam

      public Builder queryParam(String key, Object value)
      添加查询参数。
      Parameters:
      key - 参数名称
      value - 参数值
      Returns:
      当前 Builder 实例
      Throws:
      RuntimeException - 如果参数名称为空