从程序获取访问令牌实时时间

时间:2019-08-21 10:15:50

标签: wso2is

我正在基于此编写一个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>

2 个答案:

答案 0 :(得分:0)

如果您的要求是获取访问令牌有效期,请使用以下方法。

  

OAuth2AuthorizeReqDTO   authorizationReqDTO = reqMessageContext.getAuthorizationReqDTO();

     

SpOAuth2ExpiryTimeConfiguration spTimeConfigObj =   OAuth2Util.getSpTokenExpiryTimeConfig(authorizationReqDTO..getConsumerKey(),   IdentityTenantUtil.getTenantId(authorizationReqDTO.getUser()。getTenantDomain()));

     

validityPeriodInMillis =   spTimeConfigObj.getUserAccessTokenExpiryTime();

谢谢

答案 1 :(得分:0)

如果要在WSO2 Identity Server中使用JWT访问令牌,则无需在最新版本中编写任何自定义代码。 OAuth2 / OIDC配置使用此选项进行配置。请参阅所附屏幕截图的底部。因此,您不需要首先安装JWTAccessTokenBuilder。

enter image description here

相关问题