注释类型 OAuth2
@Documented
@MethodLifeCycle(OAuth2LifeCycle.class)
@RequestAttributes
@Retention(RUNTIME)
@Target({TYPE,METHOD})
public @interface OAuth2
OAuth2 请求。自动获取Token、刷新Token,目前只支持 PASSWORD、CLIENT_CREDENTIALS 这样的无回调、无交互的类型。
- 从以下版本开始:
- 1.5.0-BETA9
- 作者:
- HouKunLin
-
嵌套类概要
嵌套类 -
必需元素概要
所需元素 -
可选元素概要
可选元素修饰符和类型可选元素说明String[]其他的请求体参数。缓存ID,为了确保缓存唯一(防止被其他同类型请求的缓存Token覆盖)建议设置此值。grantType 类型强制设置 grantType 值,该值将会覆盖 grantType 的设置。Class<? extends OAuth2DefinitionHandler>处理认证响应实体密码String[]其他的Query参数。int刷新前剩余秒数,即在 expires_in 剩余多少秒进行刷新。范围Token 信息位置。Token 前缀,会强制覆盖 tokenAt 的设置。传输 Token 的参数名,会强制覆盖 tokenAt 的设置。用户名
-
元素详细资料
-
tokenUri
请求Token的URL地址,通过请求该地址以获得Token- 返回:
- 请求Token的URL地址
-
clientId
客户端ID- 返回:
- 客户端ID
-
clientSecret
客户端秘钥- 返回:
- 客户端秘钥
-
-
-
cacheId
String cacheId缓存ID,为了确保缓存唯一(防止被其他同类型请求的缓存Token覆盖)建议设置此值。 虽然系统已经预设了一部分缓存key内容,但是也无法保证缓存不被其他配置覆盖,因此可能需要您手动设置该值。 默认使用:tokenUri/clientId/grantType/scope/username 组成一个KEY。 假如设置了 cacheId 将会直接把 cacheId 作为缓冲 KEY。 该参数在我引入了适配微信公众号开发请求 access_token 时发现可能需要这样设置,因为微信公众号传入的是 appid 而不是 clientId, 因此可能会有人把 clientId 设置为空字符串,此时假如系统中管理了两个公众号的接口请求,就可能引起缓存 Token 错乱、被覆盖的可能性。- 返回:
- 缓存ID
- 默认值:
- ""
-
grantType
grantType 类型- 返回:
- grantType 类型
- 默认值:
- CLIENT_CREDENTIALS
-
grantTypeValue
String grantTypeValue强制设置 grantType 值,该值将会覆盖 grantType 的设置。 由于一些特殊的情况,grantType 的值跟 GrantType 中预设的不一致,可以通过设置该参数来强制覆盖 GrantType 的参数值。 例如微信公众号开发的 grant_type = client_credential ,而预设中的是 CLIENT_CREDENTIALS("client_credentials") 两者不一致导致的请求失败- 返回:
- grantType 值
- 默认值:
- ""
-
scope
String scope范围- 返回:
- 范围
- 默认值:
- ""
-
refreshAtExpiresBefore
int refreshAtExpiresBefore刷新前剩余秒数,即在 expires_in 剩余多少秒进行刷新。默认:600秒5分钟。 不会主动触发刷新,只有在Token有效期最后5分钟内有请求的时候才会触发刷新。 假如刷新失败将一直使用旧的Token,直到最后旧的Token失效时才会重新获取Token- 返回:
- 刷新前剩余秒数
- 默认值:
- 600
-
username
String username用户名- 返回:
- 用户名
- 默认值:
- ""
-
password
String password密码- 返回:
- 密码
- 默认值:
- ""
-
query
String[] query其他的Query参数。例如:{ "名称1:值1", "名称2:值2", "other-info:其他参数值" }- 返回:
- Query参数列表
- 默认值:
- {}
-
body
String[] body其他的请求体参数。例如:{ "名称1:值1", "名称2:值2", "other-info:其他参数值" }- 返回:
- 请求体参数列表
- 默认值:
- {}
-
tokenAt
Token 信息位置。默认通过Header传输- 返回:
- Token 信息位置
- 默认值:
- HEADER
-
tokenVariable
String tokenVariable传输 Token 的参数名,会强制覆盖 tokenAt 的设置。例如:Token在Header的时候默认为 Authorization
Token在Body的时候默认为 access_token
- 返回:
- Token 的参数名
- 默认值:
- ""
-
tokenPrefix
String tokenPrefixToken 前缀,会强制覆盖 tokenAt 的设置。例如:Token在Header的时候默认为 Bearer 前缀
Token在Body的时候需默认该项设置为空字符串
- 返回:
- Token 前缀
- 默认值:
- ""
-
OAuth2TokenHandler
Class<? extends OAuth2DefinitionHandler> OAuth2TokenHandler处理认证响应实体- 返回:
- OAuth2Token
- 默认值:
- com.dtflys.forest.handler.AutoOAuth2DefinitionHandler.class
-