问题标签 [jose4j]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - 如何在安静的环境中缓存 Jose4j jwks 密钥集
我开始使用 jose4j 针对它发布的 OpenedId Connect jwks 验证 Azure AD 发起的 jwt 令牌。一切都在一个宁静的环境中,这意味着没有状态。
为了避免每次收到请求时都从头开始重新创建所有对象,从而避免 jose4j 一次又一次地检索 jwks,我想使用缓存。
我的困境是要缓存什么:
- 序列化的 json jwks 字符串并调用带外验证,当它失败时获取一个新的 jwks。
- HttpsJwks
- HttpsJwksVerificationKeyResolver
- JwtConsumer
我在想 JwtConsumer 是最好的。如果这是一个不错的选择,有什么想法吗?
由于缓存在所有以多线程方式处理的 restfull 请求上共享(在 Karaf 中使用 cxf 蓝图),因此 JwtConsumer 应该是线程安全的。有谁知道是不是。
我正在考虑使用 ehcache 或使用 tid 作为键的 ConcurrentHashmap 进行缓存。
java - 如何通过我的 log4j 配置禁用 jose4j 日志消息?
我在我正在处理的 java 应用程序中使用jose4j。它是一个 json Web 令牌库,我发现将包名称放在我的 log4j 配置文件中并不能消除我从这个东西中看到的(许多)调试日志消息。这是我相关的 log4j 配置部分
所以,我基本上只想看到来自 jose4j 的日志消息,当它们上升到警告级别(或更可怕)时。
我已经能够收集到一些东西。
将根记录器设置为“信息”确实会使 jose4j 调试消息消失,因此 jose4j 的记录器至少知道我的日志记录设置。
看起来 jose4j 使用的记录器是org.sl4j
我昨天也有类似的问题。似乎添加几个罐子可以解决这个问题,但我对此并不走运。
我还将这个 jar添加到类路径中......这也不起作用。
有谁知道我怎样才能让这个库与我的日志记录设置一起使用?
jose4j - 如果在 bitbucket 上发布任何关于 Jose4J 漏洞的页面,是否有维护页面?
如果有的话,我正在寻找 JOSE4J 的漏洞列表。我们想在我们的产品中应用该库来验证 Azure AD 令牌并生成所谓的权利令牌,其中包含更多与产品相关的数据,我们非常喜欢该库,但是安全团队提出了一个问题,即是否存在任何漏洞JOSE4J 以及它们在哪里发布,以及在发现漏洞的情况下如何传达错误修复
谢谢
简
security - Jose RSAPrivateKey 和 JsonWebKey 数据库存储
我正在尝试使用 Jose ( https://bitbucket.org/b_c/jose4j/wiki/Home ) 来生成签名的 JsonWebToken。我在创建需要在令牌签名中使用的 RsaKeyPairs 时遇到问题。
这是我用来生成公钥/私钥的代码,我需要将其转换为字符串,以便将它们存储在数据库中然后检索它们。
我遇到的问题是当我做 rsaJsonWebKey.toJson(OutputControlLevel.INCLUDE_PRIVATE)
我收到此错误:
我尝试在 Jose 中调试代码,错误出现在 PublicJsonWebKey 类这一行中:
rsaPrivateKey 是 java.security.interfaces.RSAPrivateKey 而 getRsaPrivateKey() 返回 org.jose4j.jwk.RsaJsonWebKey
我究竟做错了什么?
我的要求是生成 KeyPairs,将它们存储在 varchar 类型字段或类似字段中的数据库中,然后在需要时,我可以从数据库中检索字符串,将其转换回私钥/公钥并使用它们来签署令牌?
jose4j - Jose4J 是否处理 HTTP 状态 307(临时重定向)
我想知道 Jose4J 在从 OpenID Connect Endpoint 检索 JWKS 时是否处理重定向 http 状态代码(例如 307)。
我自己现在进行检索并将 JWKS 传递给 Jose4J,即所谓的带外。现在,当我切换网络时,我得到了很多 307,想知道让 Jose4J 在支持 307 和其他重定向状态时进行 JWKS 检索是否明智
谢谢!
简
jose4j - How can I publish and consume keys from a URL?
I want to expose public keys on a URL, I think something like this:
but when I try to consume from the URL:
I get this exception:
What am I missing here?
jose4j - Jose4j 针对加密算法验证签名 alg RS256
JWT 使用 RS256 签名,我使用 jose4j 验证 JWT 签名。在我无权访问的用户环境之一中,它会生成此意外异常:
org.jose4j.lang.InvalidAlgorithmException:RS256 是未知、不受支持或不可用的 alg 算法(不是 [RSA1_5、RSA-OAEP、RSA-OAEP-256、dir、A128KW、A192KW、A256KW、ECDH-ES、ECDH-ES +A128KW、ECDH-ES+A192KW、ECDH-ES+A256KW、PBES2-HS256+A128KW、PBES2-HS384+A192KW、PBES2-HS512+A256KW、A128GCMKW、A192GCMKW、A256GCMKW])
看起来签名算法被错误地验证为密钥加密算法。请注意,我的代码仅进行签名验证,没有任何解密/加密逻辑。这只发生在一个用户环境中,我无法在本地访问或重新创建它。
有没有人见过这样的问题?或者可以给我一个调试它的提示?
jwt - jose4j JWT 的声明集的属性类型不是字符串对象
我一直在使用 jose4j 0.6.0 版来生成 Json Web 令牌(JWT)。直到令牌生成,令牌验证,一切都很好。JWT 的声明有效负载可以包含许多元素,例如版本、令牌 ID、颁发者、权限等。我正在传递 TokenPermissions 对象,它是 oneM2M 第 2 版规范中的标准对象,即
上面的代码片段生成以下 JWT Claim Set {iss=DAS@ServiceProvider, aud=CSE001, exp=1508999613, jti=H1wm_yaOe61Co-wND7wBAw@DAS@CDOT-SP, iat=1508996013, nbf=1508995953, sub=subject, email= mail@example.com,组=[组一,其他组,组三],版本=1.0.0,权限=cdot.onem2m.resource.xsd.TokenPermissions@7f3b97fd}
令牌的整体通过签名和声明验证,但是我什么时候尝试通过错误将类型转换权限属性传递给 TokenPermissions 它。
它通过以下错误:org.jose4j.jwt.MalformedClaimException:“权限”声明的值不是预期的类型(xyz.xsd.TokenPermissions@7f3b97fd - 无法将 java.lang.String 转换为 xyz.xsd.TokenPermissions.TokenPermissions )
什么类型的声明对象可以在 jose4j JWT 中传递,我是否必须强制在声明集中传递文本。任何帮助将不胜感激。
jwt - Jose4j:HttpsJwks 线程安全吗?
有人知道 HttpsJwks 的使用是否是线程安全的吗?在我们将使用 HttpsJwks 的应用程序中,我们每秒收到大约 60 到 100 个调用,但在刷新 Jwks 时我没有看到任何锁定。
此外,HttpsJwksVerificationKeyResolver 如果找不到密钥,则直接调用刷新。
亲切的问候,肯尼斯