Vis*_*hal 1 java spring-security oauth-2.0 spring-security-oauth2
我正在使用spring-security-oauth2来实现我的 OAuth2 授权服务器。spring-security-oauth2 即将消失,我知道我需要将其替换为spring-authorization-server
问题: 不同的客户端是否可以有不同的令牌到期时间(这里客户端代表客户端 ID/客户端秘密对)?
如果是,您能否分享文档/示例代码spring-authorization-server?
如果不是,这是 spring-authorization-server 的限制还是 OAuth2 规范不允许?
(澄清一下,我并不是说在 spring-security-oauth2 中这是可能的,如果是的话我也想知道)
是的,每个客户端可以有不同的到期时间。您可以使用tokenSettingsof every RegisteredClient,如以下示例所示:
RegisteredClient registeredClient = RegisteredClient.withId(UUID.randomUUID().toString())
.clientId("messaging-client")
.clientSecret("{noop}secret")
.clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC)
.authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
.authorizationGrantType(AuthorizationGrantType.REFRESH_TOKEN)
.authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS)
.redirectUri("http://127.0.0.1:8080/login/oauth2/code/messaging-client-oidc")
.redirectUri("http://127.0.0.1:8080/authorized")
.scope(OidcScopes.OPENID)
.scope("message.read")
.scope("message.write")
.tokenSettings(TokenSettings.builder()
.accessTokenTimeToLive(Duration.ofMinutes(5))
.refreshTokenTimeToLive(Duration.ofHours(2))
.build())
.clientSettings(ClientSettings.builder().requireAuthorizationConsent(true).build())
.build();
Run Code Online (Sandbox Code Playgroud)
有关完整上下文,请参阅示例配置。
| 归档时间: |
|
| 查看次数: |
2428 次 |
| 最近记录: |