我正在基于此编写一个Accesstoken Builder msf4j example。我对角色进行了过滤等。我正在使用wso2is 5.8 我尝试访问为服务提供者设置的AccessTokenValidityPeriod。 在我的服务提供商设置中,我增加了“用户访问令牌到期时间”,“应用程序访问令牌到期时间”和“ Id令牌到期时间”。
我可以从identity.xml文件访问令牌生存期的值,但是我想查找此serviceprovider的特定设置。 我的代码看起来像这样
private long getLifetimeInMillis(OAuthAuthzReqMessageContext reqMessageContext, OAuthTokenReqMessageContext ctx) {
long lifetimeInMillis = -1;
if (reqMessageContext != null) {
log.debug("Get lifetime from OAuthAuthzReqMessageContext property");
lifetimeInMillis = reqMessageContext.getAccessTokenValidityPeriod();
/* always returns 0
... */
但这总是返回0。 我已经调试了OAuthAuthzReqMessageContext类,但是仅将构造方法称为setter setAccessTokenValidityPeriod。 我的pom.xml包含:
<dependency>
<groupId>org.wso2.carbon.identity.framework</groupId>
<artifactId>org.wso2.carbon.identity.application.authentication.framework</artifactId>
<version>5.12.387</version>
</dependency>
<dependency>
<groupId>org.wso2.carbon.identity.inbound.auth.oauth2</groupId>
<artifactId>org.wso2.carbon.identity.oauth</artifactId>
<version>6.0.168</version>
<scope>provided</scope>
</dependency>
答案 0 :(得分:0)
如果您的要求是获取访问令牌有效期,请使用以下方法。
OAuth2AuthorizeReqDTO authorizationReqDTO = reqMessageContext.getAuthorizationReqDTO();
SpOAuth2ExpiryTimeConfiguration spTimeConfigObj = OAuth2Util.getSpTokenExpiryTimeConfig(authorizationReqDTO..getConsumerKey(), IdentityTenantUtil.getTenantId(authorizationReqDTO.getUser()。getTenantDomain()));
validityPeriodInMillis = spTimeConfigObj.getUserAccessTokenExpiryTime();
谢谢
答案 1 :(得分:0)