Interface OpenIDConnectHttpRestClient
@HttpExchange(accept="application/json")
public interface OpenIDConnectHttpRestClient
OIDC (OpenID Connect) 声明式 HTTP 客户端接口。
该接口基于 Spring HTTP Interface 机制,用于与 OIDC 授权服务器进行交互。
所有的请求 URL 均通过方法参数 URI 动态传入,以支持运行时通过 OIDC Discovery 动态获取端点地址。
-
Method Summary
Modifier and TypeMethodDescriptioncode2Token(URI uri, String clientId, String clientSecret, String code, String grantType, String redirectUri, String codeVerifier) 使用授权码 (Authorization Code) 换取访问令牌 (Access Token)。获取 OIDC 发现文档 (OpenID Connect Discovery)。org.nutz.lang.util.NutMaptoken2User(URI uri, String authorization) 使用访问令牌 (Access Token) 获取用户信息 (Claims)。tech.riemann.nif.auth.service.AuthUseruserDetail(URI uri, String clientId, String token) 获取 OIDC 用户详情。
-
Method Details
-
userDetail
@GetExchange("/api/open/{clientId}/user-info") tech.riemann.nif.auth.service.AuthUser userDetail(URI uri, @PathVariable String clientId, @RequestParam String token) 获取 OIDC 用户详情。通过 GET 请求获取指定客户端下用户的详细信息。 注意:传入的
uri将直接覆盖接口级别的相对路径。- Parameters:
uri- 运行时动态传入的完整 UserInfo Endpoint URLclientId- 客户端 ID,用于替换 URL 路径中的 {clientId} 变量token- 用户的访问令牌 (Access Token),作为查询参数传递- Returns:
- 解析后的用户信息实体
AuthUser
-
discovery
获取 OIDC 发现文档 (OpenID Connect Discovery)。通过访问 /.well-known/openid-configuration 路径,获取授权服务器的元数据配置信息, 包括 token_endpoint、userinfo_endpoint 等关键端点地址。
- Parameters:
uri- 运行时动态传入的完整 OIDC Issuer URL (例如: https://auth.example.com)- Returns:
- 解析后的 OIDC 客户端配置信息
OpenIDConnectClient
-
code2Token
@PostExchange(contentType="application/x-www-form-urlencoded") Token code2Token(URI uri, @RequestParam("client_id") String clientId, @RequestParam("client_secret") String clientSecret, @RequestParam String code, @RequestParam("grant_type") String grantType, @RequestParam("redirect_uri") String redirectUri, @RequestParam(value="code_verifier",required=false) String codeVerifier) 使用授权码 (Authorization Code) 换取访问令牌 (Access Token)。对应 OAuth2/OIDC 的 Token Endpoint 请求。 请求体将以 application/x-www-form-urlencoded 格式发送。
- Parameters:
uri- 运行时动态传入的完整 Token Endpoint URLclientId- 客户端 IDclientSecret- 客户端密钥code- 授权码 (Authorization Code)grantType- 授权类型,通常为 "authorization_code"redirectUri- 重定向 URI,必须与获取授权码时使用的 URI 完全一致codeVerifier- PKCE 机制的验证码 (Code Verifier),若未启用 PKCE 可传 null- Returns:
- 包含 Access Token、Refresh Token 等信息的令牌对象
Token
-
token2User
@GetExchange org.nutz.lang.util.NutMap token2User(URI uri, @RequestHeader("Authorization") String authorization) 使用访问令牌 (Access Token) 获取用户信息 (Claims)。对应 OAuth2/OIDC 的 UserInfo Endpoint 请求。 通过 HTTP Header 传递 Bearer Token 进行身份认证。
- Parameters:
uri- 运行时动态传入的完整 UserInfo Endpoint URLauthorization- 认证请求头,格式必须为 "Bearer {access_token}"- Returns:
- 包含用户声明信息 (Claims) 的键值对集合
NutMap
-