wso2 am 2.1.0 jwt令牌到期

wso2 am 2.1.0 jwt令牌到期,wso2,wso2-am,Wso2,Wso2 Am,使用WSO2AM 2.1.0,我们希望使用JWT令牌将api、用户和应用程序信息传递给后端服务进行授权。问题在于JWT验证,因为过期时间戳设置为当前时间戳 阅读其他资源没有多大帮助: api-manager.xml的内容 <CacheConfigurations> <EnableGatewayTokenCache>true</EnableGatewayTokenCache> <EnableGatewayResourceCache

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

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

api-manager.xml的内容

<CacheConfigurations>
    <EnableGatewayTokenCache>true</EnableGatewayTokenCache>
    <EnableGatewayResourceCache>true</EnableGatewayResourceCache>
    <JWTClaimCacheExpiry>900</JWTClaimCacheExpiry>
...

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

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

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

编辑:如果启用了(网关或KeyManager)令牌缓存,则JWT过期只需设置为当前时间戳(使JWT令牌在没有与后端服务就令牌回旋/倾斜时间达成协议的情况下不可用)。令牌在缓存生存期内被缓存(默认情况下为15分钟),因此后端必须允许过期令牌保留15分钟。还是我遗漏了什么

如果令牌缓存被禁用(待验证),则JWTExpiryTime似乎生效

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

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

<CacheConfigurations>
    ...
    <TokenCacheExpiry>900</TokenCacheExpiry>
    ...
</CacheConfigurations>

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

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