首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个客户端OAuth2不同的令牌过期时间

每个客户端OAuth2不同的令牌过期时间
EN

Stack Overflow用户
提问于 2022-01-14 22:46:01
回答 1查看 790关注 0票数 1

我正在使用弹簧-安全-OAuth2实现我的OAuth2授权服务器。spring-安全性-OAuth2即将消失,我知道我需要用spring-授权服务器替换它

问题:是否可能对不同的客户端有不同的令牌到期时间(此处客户端表示客户端id/客户端秘密对)?

如果是,请您与spring-authorization-server共享文档/示例代码

如果不是,这是spring授权服务器的限制还是OAuth2规范不允许的?

(澄清一下,我并不是说春季安全-OAuth2是可能的,如果我也想知道的话)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-14 23:07:23

是的,每个客户端可以有不同的过期时间。您将使用每个tokenSettingsRegisteredClient,如以下示例所示:

代码语言:javascript
复制
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();

有关完整上下文,请参见样例配置

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70717354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档