You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Curity Identity Server事件监听器上下文获取委托关联的活跃access token

针对Curity Identity Server事件监听器获取关联Access Token的解答

注:以下结论仅适用于Curity Identity Server 6.x及以上稳定版本
首先给出明确结论:默认无法直接从事件监听器上下文获取与指定Refresh Token关联的全部Access Token,必须在监听器内和数据源交互完成查询。

具体原因说明

  • Curity的事件上下文仅会携带触发当前事件的直接关联令牌信息,比如当前Refresh Token本身的元数据、触发事件对应的单条Access Token(仅当事件为单条Access Token签发、过期等相关场景时才会携带),不会预加载和该Refresh Token绑定的全量历史或有效Access Token列表。
  • Refresh Token和其派生的所有Access Token的关联关系仅持久化在Curity配置的令牌存储数据源中(通常为JDBC数据库、Redis或自定义令牌存储服务),不会提前加载到事件上下文的内存对象内。

实现方式

你可以直接调用Curity官方提供的TokenStore服务接口完成查询,不需要自行封装数据源操作逻辑,参考示例代码:

// 首先在监听器类中注入TokenStore实例
private final TokenStore tokenStore;

public CustomTokenEventListener(TokenStore tokenStore) {
    this.tokenStore = tokenStore;
}

// 事件处理逻辑内调用查询方法,入参为目标Refresh Token的jti或唯一标识
List<AccessToken> relatedAccessTokens = tokenStore.getAccessTokensByRefreshTokenId(refreshTokenId);

注意事项

  • 如果你使用自签名JWT格式的Access Token,默认仅会存储令牌元数据,不会存储完整JWT串,若需要获取完整令牌内容需要提前调整令牌存储配置,开启JWT全量存储开关。
  • 高并发场景下频繁查询令牌存储可能带来性能损耗,可根据业务需要配置令牌存储的缓存层优化查询效率。

内容的提问来源于stack exchange,提问作者HazzeWazze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:24:05