java.lang.Object
org.miaixz.bus.auth.Builder
URL 构造工具类,支持 OAuth 相关功能。 提供方法以构建带查询参数的 URL、处理 OAuth 签名、生成 PKCE 校验码等功能,用于认证流程。
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionbuild()构造 URL,不对参数值进行编码。build(boolean encode) 构造 URL,可选择是否对参数值进行编码。static StringcodeChallenge(String codeChallengeMethod, String codeVerifier) 生成 OAuth 2.0 PKCE 的校验码(code challenge)。static String生成 OAuth 2.0 PKCE 的校验码验证器(code verifier)。static byte[]使用 SHA-256 算法对字符串进行摘要。static Builder从基础 URL 创建 Builder 实例。获取只读的参数映射。static StringparseMapToString(Map<String, String> map, boolean encode) 将键值对映射转换为字符串,格式为key=value&key=value。parseStringToMap(String text) 将字符串解析为键值对映射,字符串格式为key=value&key=value。queryParam(String key, Object value) 添加查询参数。static byte[]生成 HMAC 签名。
-
Field Details
-
AUTHORIZE
授权端点配置键- See Also:
-
ACCESSTOKEN
访问令牌端点配置键- See Also:
-
USERINFO
用户信息端点配置键- See Also:
-
REFRESH
刷新令牌端点配置键- See Also:
-
REVOKE
撤销授权端点配置键- See Also:
-
-
Method Details
-
fromUrl
从基础 URL 创建 Builder 实例。- Parameters:
baseUrl- 基础 URL- Returns:
- 新创建的 Builder 实例
-
parseStringToMap
将字符串解析为键值对映射,字符串格式为key=value&key=value。- Parameters:
text- 待解析的字符串- Returns:
- 键值对映射
-
parseMapToString
将键值对映射转换为字符串,格式为key=value&key=value。- Parameters:
map- 待转换的映射encode- 是否对值进行 URL 编码- Returns:
- 转换后的字符串,若映射为空则返回空字符串
-
sign
生成 HMAC 签名。- Parameters:
key- 签名密钥data- 待签名数据algorithm- 签名算法(如 HMAC-SHA1)- Returns:
- 签名字节数组
- Throws:
org.miaixz.bus.core.lang.exception.AuthorizedException- 如果算法不支持或密钥无效
-
codeVerifier
生成 OAuth 2.0 PKCE 的校验码验证器(code verifier)。- Returns:
- Base64 URL 安全的随机字符串
-
codeChallenge
生成 OAuth 2.0 PKCE 的校验码(code challenge)。 参考:https://tools.ietf.org/html/rfc7636#section-4.2- Parameters:
codeChallengeMethod- 校验方法(s256 或 plain)codeVerifier- 客户端生成的校验码验证器- Returns:
- 校验码
-
digest
使用 SHA-256 算法对字符串进行摘要。- Parameters:
str- 待摘要的字符串- Returns:
- 摘要字节数组,若算法不可用则返回 null
-
build
构造 URL,不对参数值进行编码。- Returns:
- 构造完成的 URL
-
build
构造 URL,可选择是否对参数值进行编码。- Parameters:
encode- 是否对参数值进行 URL 编码- Returns:
- 构造完成的 URL
-
getReadOnlyParams
获取只读的参数映射。- Returns:
- 不可修改的参数映射
-
queryParam
添加查询参数。- Parameters:
key- 参数名称value- 参数值- Returns:
- 当前 Builder 实例
- Throws:
RuntimeException- 如果参数名称为空
-