java.lang.Object
org.miaixz.bus.auth.nimble.AbstractProvider
- All Implemented Interfaces:
Provider,org.miaixz.bus.core.Provider
- Direct Known Subclasses:
AbstractDingtalkProvider,AbstractMicrosoftProvider,AbstractWeChatProvider,AfDianProvider,AlipayProvider,AliyunProvider,AmazonProvider,AppleProvider,BaiduProvider,CodingProvider,DouyinProvider,ElemeProvider,FacebookProvider,FeishuProvider,FigmaProvider,GiteeProvider,GithubProvider,GitlabProvider,GoogleProvider,HuaweiProvider,JdProvider,KujialeProvider,LineProvider,LinkedinProvider,MeituanProvider,MiProvider,OktaProvider,OschinaProvider,PinterestProvider,ProginnProvider,QqMiniProvider,QqProvider,RenrenProvider,SlackProvider,StackOverflowProvider,TaobaoProvider,TeambitionProvider,ToutiaoProvider,TwitterProvider,WeChatMiniProvider,WeiboProvider,XimalayaProvider
抽象授权处理基类,支持 OAuth2、SAML、LDAP 等多种协议。 提供通用的授权、令牌获取和用户信息查询逻辑,协议特定实现由子类完成。
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionAbstractProvider(Context context, Complex complex) 使用指定的上下文和协议配置构造 AbstractProvider。AbstractProvider(Context context, Complex complex, org.miaixz.bus.cache.metric.ExtendCache cache) 使用自定义缓存构造 AbstractProvider。 -
Method Summary
Modifier and TypeMethodDescriptionprotected StringaccessTokenUrl(String code) 构造 OAuth2 的访问令牌 URL。生成用于启动认证流程的授权 URL。protected void验证上下文配置的完整性,根据协议类型检查所需字段。protected void验证回调数据,主要用于 OAuth2 协议。protected StringdoGetAuthorizationCode(String code) 执行 GET 请求以获取 OAuth2 访问令牌。protected StringdoGetRevoke(AccToken accToken) 执行 GET 请求以撤销 OAuth2 授权。protected StringdoGetUserInfo(AccToken accToken) 执行 GET 请求以获取 OAuth2 用户信息。protected String执行 POST 请求以获取 OAuth2 访问令牌。getDefaultScopes(AuthorizeScope[] scopes) 从授权范围数组中获取标记为默认的范围。protected StringgetRealState(String state) 生成或缓存用于防止 CSRF 攻击的状态参数。protected String从配置或默认范围构造范围字符串。getScopes(AuthorizeScope... scopes) 从授权范围数组中获取范围名称。org.miaixz.bus.core.basic.entity.Message处理登录流程,验证回调数据,获取访问令牌并查询用户信息。protected StringrefreshTokenUrl(String refreshToken) 构造 OAuth2 的刷新令牌 URL。protected org.miaixz.bus.core.basic.entity.Message构造登录过程中异常的错误响应。protected String构造 OAuth2 的撤销授权 URL。protected StringuserInfoUrl(AccToken accToken) 构造 OAuth2 的用户信息 URL。Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.miaixz.bus.auth.Provider
getAccessToken, getUserInfo, refresh, revoke, type
-
Field Details
-
context
包含协议特定配置的上下文对象 -
complex
定义协议端点或配置的协议对象 -
cache
protected org.miaixz.bus.cache.metric.ExtendCache cache用于存储状态或其他临时数据的缓存
-
-
Constructor Details
-
AbstractProvider
使用指定的上下文和协议配置构造 AbstractProvider。- Parameters:
context- 上下文配置complex- 协议配置
-
AbstractProvider
public AbstractProvider(Context context, Complex complex, org.miaixz.bus.cache.metric.ExtendCache cache) 使用自定义缓存构造 AbstractProvider。- Parameters:
context- 上下文配置complex- 协议配置cache- 缓存实现- Throws:
org.miaixz.bus.core.lang.exception.AuthorizedException- 如果配置不完整
-
-
Method Details
-
getDefaultScopes
从授权范围数组中获取标记为默认的范围。- Parameters:
scopes- 授权范围数组- Returns:
- 默认范围名称列表,若无则返回 null
-
getScopes
从授权范围数组中获取范围名称。- Parameters:
scopes- 可变数量的授权范围- Returns:
- 范围名称列表,若无则返回 null
-
login
处理登录流程,验证回调数据,获取访问令牌并查询用户信息。 -
check
验证回调数据,主要用于 OAuth2 协议。- Parameters:
callback- 包含授权数据的回调对象- Throws:
org.miaixz.bus.core.lang.exception.AuthorizedException- 如果 OAuth2 验证失败
-
responseError
构造登录过程中异常的错误响应。- Parameters:
e- 发生的异常- Returns:
- 包含错误详情的 Message 对象
-
authorize
生成用于启动认证流程的授权 URL。 -
accessTokenUrl
构造 OAuth2 的访问令牌 URL。- Parameters:
code- 授权代码- Returns:
- 访问令牌 URL
-
refreshTokenUrl
构造 OAuth2 的刷新令牌 URL。- Parameters:
refreshToken- 刷新令牌- Returns:
- 刷新令牌 URL
-
userInfoUrl
构造 OAuth2 的用户信息 URL。- Parameters:
accToken- 访问令牌- Returns:
- 用户信息 URL
-
revokeUrl
构造 OAuth2 的撤销授权 URL。- Parameters:
accToken- 访问令牌- Returns:
- 撤销授权 URL
-
getRealState
生成或缓存用于防止 CSRF 攻击的状态参数。- Parameters:
state- 提供的状态值,若为空则生成新值- Returns:
- 非空的狀態值
-
doPostAuthorizationCode
执行 POST 请求以获取 OAuth2 访问令牌。- Parameters:
code- 授权代码- Returns:
- 响应内容
-
doGetAuthorizationCode
执行 GET 请求以获取 OAuth2 访问令牌。- Parameters:
code- 授权代码- Returns:
- 响应内容
-
doGetUserInfo
执行 GET 请求以获取 OAuth2 用户信息。- Parameters:
accToken- 访问令牌- Returns:
- 响应内容
-
doGetRevoke
执行 GET 请求以撤销 OAuth2 授权。- Parameters:
accToken- 访问令牌- Returns:
- 响应内容
-
getScopes
从配置或默认范围构造范围字符串。- Parameters:
separator- 多个范围的分隔符encode- 是否对范围字符串进行 URL 编码defaultScopes- 默认范围(若未配置范围时使用)- Returns:
- 范围字符串,若无则返回空字符串
-
check
验证上下文配置的完整性,根据协议类型检查所需字段。- Parameters:
context- 上下文配置- Throws:
org.miaixz.bus.core.lang.exception.AuthorizedException- 如果配置不完整
-