首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wso2-am 2.1.0JWT令牌到期

wso2-am 2.1.0JWT令牌到期
EN

Stack Overflow用户
提问于 2017-08-29 16:04:13
回答 1查看 664关注 0票数 2

使用WSO2AM 2.1.0,我们希望使用JWT令牌将api、用户和应用程序信息传递给后端服务以进行授权。问题在于JWT验证,因为过期时间戳被设置为当前时间戳。

阅读其他资源没有多大帮助:

api-manager.xml的内容

代码语言:javascript
复制
<CacheConfigurations>
    <EnableGatewayTokenCache>true</EnableGatewayTokenCache>
    <EnableGatewayResourceCache>true</EnableGatewayResourceCache>
    <JWTClaimCacheExpiry>900</JWTClaimCacheExpiry>
...

<APIKeyValidator>
    ...
    <JWTExpiryTime>900</JWTExpiryTime>
    <SecurityContextTTL>900</SecurityContextTTL>
</APIKeyValidator>

(即使根据资源,当启用KM或GW缓存时,JWTExpiryTime也不起作用)

如果令牌缓存被禁用(待验证),则JWTExpiryTime看起来是有效的,但出于性能原因,我们希望缓存访问令牌。

编辑:似乎如果启用了(网关或KeyManager)令牌缓存,JWT过期将简单地设置为当前时间戳(如果没有就令牌馀弦/倾斜时间的后端服务达成某种协议,JWT令牌就无法使用)。令牌被缓存为缓存生存期(默认情况下为15分钟),因此后端必须允许过期令牌持续15分钟。还是我漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2018-06-19 12:24:03

如果令牌缓存被禁用(待验证),JWTExpiryTime看起来就生效了。

你说得对。只有当网关和密钥管理器缓存都被禁用时,才能使用{}/APIM_HOME}/conf/api-Manager.xml中的JWTExpiryTime设置JWT过期时间戳。

但是,如果希望使令牌缓存保持启用,同时防止JWT生成时过期,则可以在CacheConfigurations部分下的api-manager.xml中设置CacheConfigurations属性,如下所示。

代码语言:javascript
复制
<CacheConfigurations>
    ...
    <TokenCacheExpiry>900</TokenCacheExpiry>
    ...
</CacheConfigurations>

使用此属性,您可以定义网关或密钥管理器的缓存过期时间持续时间,默认值为900(秒)。

有关更多信息,请参考以下文档。

  1. https://docs.wso2.com/display/AM210/Configuring+Caching
  2. https://docs.wso2.com/display/AM210/Passing+Enduser+Attributes+to+the+Backend+Using+JWT#PassingEnduserAttributestotheBackendUsingJWT-ExpirytimeoftheJWT
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45943671

复制
相关文章

相似问题

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