问题标签 [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.

0 投票
3 回答
3420 浏览

java - java密码学中'AGCM256-KW'的算法字符串是什么,用于Cipher.getInstance(String algo)?

提到这一点,我必须使用算法AGCM256-KW进行加密。我正在使用 Java Cryptography,但没有找到任何这样的算法。我发现最接近的是AES_256/GCM/NoPadding,但它没有 KW(密钥包装)。

这是我的测试代码

更新 1 我想我可以使用具有JWE API 的jose4j库。

0 投票
1 回答
865 浏览

json - 如何为 Json Web Keys 设置代理服务器

我正在尝试为谷歌 JSON 网络密钥构建 JWKS 对象,以验证从谷歌接收到的 JWT 令牌的签名。在我们的公司环境中,我们需要设置代理服务器以与外部服务器联系。下面的代码在公司环境之外运行。

HttpsJwks https_jwks = new HttpsJwks(GOOGLE_SIGN_KEYS); List<JsonWebKey> jwks_list = https_jwks.getJsonWebKeys();

图书馆:jose4j0.4.1

提前致谢。

0 投票
1 回答
3832 浏览

java - java.lang.NoClassDefFoundError:无法初始化类 org.jose4j.jwa.AlgorithmFactoryFactory JsonWebSignature getCompactSerialization

有谁知道这个例外有什么问题。

当我调用方法 jws.getCompactSerialization(); 时,我得到了错误。

我下载了 jose4j-0.5.2。我将此库添加到构建路径和部署程序集,并将 jar 复制到 WEB-INF 文件夹中。

我没有使用 Servlet 或任何其他框架,如 Spring。只有 Jersey 2.23.2、Moxy 2.23.2 和 java_json_1.0。我不使用杰克逊。

这些是我的主张

然后签名

然后我立即调用该方法

我清理了我的服务器,再次发布并应用了运行。

我得到的第一个错误是

我没有下载它,也没有使用 slf4j 记录器,所以在我调用该方法之后,我得到了异常。jose 库需要 slf4j 库吗???

然后,如果我再次尝试运行它,我不会收到错误 slf4j。现在直接到这个错误而不指向slf4j。???

Tomcat是否可能正在缓存某些内容或我缺少什么库?

0 投票
1 回答
1389 浏览

angularjs - Json Web 令牌 - jose4j - SyntaxError:JSON 中位置 0 的意外令牌 e

我有一个试图获取令牌的控制器。

当我在视图 PRETTY 中执行它时,我在邮递员中收到此错误

意外的“e”

但是如果我去查看RAW,我可以看到这样的令牌。

这是我的控制器的代码。

我忽略了邮递员中的错误,但尝试在 Chrome 中执行它时出现同样的错误。

我尝试用这样的角度调用我的 RESTful 控制器,但我总是使用响应参数中的消息进入 onError 方法。

这是角度的代码

我对令牌代码的引用来自这里的 Jose4j

更新

我解决了这个问题。我仍然认为我最初这样做的方式也应该有效,但我仍然不明白为什么我会收到错误。

我创建了一个名为 Token 的 pojo,其属性标记为 String,然后我更改了它

对此:

这是我返回真实 json 对象的解决方法。

0 投票
1 回答
950 浏览

java - 如何使用 jose.4.j 输出 JWK 设置端点?

我可以看到如何使用jose.4.jKey创建新的 s,但我想知道如何获取它们的数组并输出可公开访问的 JSON 列表,以用作 OiDC 中发现端点的一部分。像IETF 草案示例之类的东西......

我想我缺少一些明显的东西toString(),比如不显示私钥的东西?

0 投票
2 回答
11536 浏览

java - 如何从 JWT 获得索赔?

我需要从 JWT 中提取声明。

看来这应该是不费吹灰之力了。

它已签名,从我得到的标题中:

智威汤逊:

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJtYXJrLnN0YW5nQGRoaWdyb3VwaW5jLmNvbSIsInNjb3BlIjpbIm9wZW5pZCJdLCJyb2xlcyI6WyJKT0JTRUVLRVIiXSwiam9ic2Vla2VySWQiOiJ3TDFkTWdQckZWOUl5dEZZIiwiZXhwIjoxNDg4Mzk1ODE5LCJhdXRob3JpdGllcyI6WyJKT0JTRUVLRVIiXSwianRpIjoiNWRiYjNkYzQtNGI3NC00MDYyLTgzMmQtYjE1MTgwYWZhZjllIiwiY2xpZW50X2lkIjoiZWZjIn0.NxiF4x39na3KdDUFz2zxqy1zSfJkj4FdKHflpgJUxzMgBq8bbJIFVkmwAUYA6_YXm6kGFcyTMgdiRIJpqc5buDPdV1vkzh4QKFTxMz9MF4i3vtIQ21Vm5W12KikWdWGGUXMD4udJwu7rmuIBtNIa-ciZOPADNrrXfuw7iML1xxAA-C0f4OTbiKqiXr3QEUZwcqZB17qfh_dVRRxgO-_uHUg84JDcpXEDQPzPWX68u1EHH4J6IcpMKn1VY9k3RcZU6pq-ndzQgBlKdVm2owA6i-UM9p1zSz7ZX_2wx0czEEcNF1rMdeIv5yxP9YEpWb14-GUG4qgpn_rAIQBJ7eu7xw

它在 jwt.io 网站上解码得很好,但由于我没有“秘密”密钥,它出现为“无效签名”。这很好,我不想验证它。

我想要的只是声明,但是当我使用 Java 库对其进行解码时,我得到的只是错误。

如果我手动解码(即拆分/base64 解码)就可以了。

那么,我对 Java 库做错了什么?

0 投票
2 回答
2335 浏览

java - 为什么我的 Jose4j JSON Web Key 会导致这个 InvalidKeyException?

我正在使用 Jose4j 在 Java 中执行 JSON Web Token 的加密。

我创建一个键作为 JSON 格式的字符串传递给JsonWebKey.Factory.newJwk方法,因此:

我把它传给工厂并得到JsonWebKey (jwk)回报。然后将密钥(来自jwk.getKey()方法)传递给 JsonWebEncryption 的setKey()方法。我设置AlgorithmHeaderValueEncryptionMethodHeaderParameter...

然后,当我调用jwe.getCompactSerialization()它时会引发以下异常

我传入了 16 个字节,那么为什么这会计算为 128 的 96 位?

0 投票
1 回答
407 浏览

spring-security-oauth2 - 混合 Spring Security OAuth2 和 Jose4j

我想知道(在我尝试沿着这条路径实现一些东西之前)关于一种方法。假设我有一个完整的 OAuth2 系统(使用 spring boot 和 spring cloud,但不使用 spring cloud security)。到目前为止,这运行得很好,并支持几种不同的授权类型。我感兴趣的是在某些特殊情况下手动创建 JWT,然后将这个令牌与 Spring Security 一起使用的可能性。我查看了 jose4j,似乎我应该能够使用它来代替系统的授权服务器部分。请注意,这样做的目标是我必须创建一个通常由授权服务器生成的令牌。

0 投票
1 回答
1610 浏览

json - JOSE4J:如何从 RsaJsonWebKey 的 JSON 表示创建 RsaJsonWebKey 对象

我想用 JOSE4J 以 JSON 格式保存 RsaJsonWebKey 对象的 JSON 表示,然后再次从中重新创建 RsaJsonWebKey 对象。我有编组部分:

RsaJsonWebKey rsaJsonWebKey = RsaJwkGenerator.generateJwk(2048);

字符串 jwkjson = rsaJsonWebKey.toJson(JsonWebKey.OutputControlLevel.INCLUDE_PRIVATE);

但是如何解组它并重新创建 RsaJsonWebKey。这就是我卡住的地方,因为我没有看到 RsaJsonWebKey 的构造函数允许这样做。

这个问题与这个问题有关

重启服务器后JWT失效

但它没有解释如何解组。

0 投票
1 回答
206 浏览

jwt - JOSE4J 是否会通过 OpenID Connect 发现文档支持 JWKS 密钥验证

JOSE4J 将 jwks_uri 作为其 JWT 验证的起点,我想知道是否可以支持 Discovery Document 作为起点,JOSE4J 将从那里获取 jwks_uri,然后转到 JWKS 密钥文档以选择公钥通过孩子匹配智威汤逊。这样我只需要在我的代码中硬编码发现文档 uri,因为我有点担心 jwks_uri 是否会在没有通知的情况下更改,据我所知,wellknow 发现文档是固定的。

这就是它现在的工作方式:

也许让解析器识别发现文档 uri 是否被传入并相应地表现会很好。

谢谢!