我开始使用jose4j来根据它发布的OpenedId连接来验证Azure发起的jwt令牌。都在一个宁静的环境中,这意味着没有状态。
为了避免每次请求出现时从头开始重新创建所有对象,从而避免jose4j一次又一次地检索jwk,我想使用缓存。
我面临的困境是要缓存什么:
我在想JwtConsumer是最好的。如果这是一个好的选择,对此有什么想法吗?
由于缓存是在所有restfull请求上共享的,这些请求是以多种读取方式处理的(在Karaf中使用cxf蓝图),因此JwtConsumer应该是线程安全的。谁知道是不是。
我正在考虑使用ehcache或使用tid作为键的ConcurrentHashmap来缓存。
发布于 2017-06-18 12:49:12
JwtConsumer是线程安全的(只要使用的任何自定义验证器或自定义器也是线程安全的)。但是,缓存和重用HttpsJwks对象将实现绝大多数好处,因为它在内部缓存从jwks端点检索到的密钥。坚持HttpsJwks将阻止jose4j一次又一次地检索jwks端点的内容。
https://stackoverflow.com/questions/44608986
复制相似问题