我们正在使用WSO2来访问我们的一些服务。 WSO2还处理身份验证。 我们面临着这种身份验证的问题。当我们请求令牌时,我们会得到一个即将过期的活动令牌(让我们说还剩1秒)。电话是:
Call: https://url.com/token
Header: Authorization - Basic Wm5VR1pDTGtVbjRyZllQOHVQVDJSUVRFeGFRYTpSMDVaQWZUNThDbWJxSW96d3NBSGdadmFVSzRh
Result:
{
"access_token": "8b8243fa-4f74-363f-ab83-8a5752ccb3d3",
"scope": "am_application_scope default",
"token_type": "Bearer",
"expires_in": 1
}
几秒钟后,我们打电话给我们的一个API,它会在令牌过期时返回授权错误。然后我们要求一个新的工作正常。
但是,在读取网关令牌缓存时,默认情况下,令牌应缓存15分钟。我检查了配置文件,设置确实正确:
<CacheConfigurations>
<!-- Enable/Disable token caching at the Gateway-->
<EnableGatewayTokenCache>true</EnableGatewayTokenCache>
<!-- Enable/Disable API resource caching at the Gateway-->
<EnableGatewayResourceCache>true</EnableGatewayResourceCache>
<!-- Enable/Disable API key validation information caching at key-management server -->
<EnableKeyManagerTokenCache>false</EnableKeyManagerTokenCache>
<!-- This parameter specifies whether Recently Added APIs will be loaded from the cache or not.
If there are multiple API modification during a short time period, better to disable cache. -->
<EnableRecentlyAddedAPICache>false</EnableRecentlyAddedAPICache>
<!-- JWT claims Cache expiry in seconds -->
<!--JWTClaimCacheExpiry>900</JWTClaimCacheExpiry-->
<!-- Expiry time for the apim key mgt validation info cache -->
<!--TokenCacheExpiry>900</TokenCacheExpiry-->
<!-- This parameter specifies the expiration time of the TagCache. TagCache will
only be created when this element is uncommented. When the specified
time duration gets elapsed ,tag cache will get re-generated. -->
<!--TagCacheDuration>120000</TagCacheDuration-->
</CacheConfigurations>
因此我们预计在令牌到期后呼叫应该仍然有效。
我们正在使用WSO2 API版本2.0.0。
我需要检查的其他任何配置?
答案 0 :(得分:0)
问题在于声明:&#34; expires_in&#34;:1 因此您的令牌将在1秒后到期。
因此我们希望在令牌到期后调用仍然有效。
没有,一旦令牌过期,它也会从缓存中删除(或者 - 至少缓存不会返回它)
可以在 identity.xml 配置文件中设置默认令牌生存期,请参阅the documentation