问题标签 [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.
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
提前致谢。
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是否可能正在缓存某些内容或我缺少什么库?
angularjs - Json Web 令牌 - jose4j - SyntaxError:JSON 中位置 0 的意外令牌 e
我有一个试图获取令牌的控制器。
当我在视图 PRETTY 中执行它时,我在邮递员中收到此错误
意外的“e”
但是如果我去查看RAW,我可以看到这样的令牌。
这是我的控制器的代码。
我忽略了邮递员中的错误,但尝试在 Chrome 中执行它时出现同样的错误。
我尝试用这样的角度调用我的 RESTful 控制器,但我总是使用响应参数中的消息进入 onError 方法。
这是角度的代码
我对令牌代码的引用来自这里的 Jose4j
更新
我解决了这个问题。我仍然认为我最初这样做的方式也应该有效,但我仍然不明白为什么我会收到错误。
我创建了一个名为 Token 的 pojo,其属性标记为 String,然后我更改了它
对此:
这是我返回真实 json 对象的解决方法。
java - 如何从 JWT 获得索赔?
我需要从 JWT 中提取声明。
看来这应该是不费吹灰之力了。
它已签名,从我得到的标题中:
智威汤逊:
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJtYXJrLnN0YW5nQGRoaWdyb3VwaW5jLmNvbSIsInNjb3BlIjpbIm9wZW5pZCJdLCJyb2xlcyI6WyJKT0JTRUVLRVIiXSwiam9ic2Vla2VySWQiOiJ3TDFkTWdQckZWOUl5dEZZIiwiZXhwIjoxNDg4Mzk1ODE5LCJhdXRob3JpdGllcyI6WyJKT0JTRUVLRVIiXSwianRpIjoiNWRiYjNkYzQtNGI3NC00MDYyLTgzMmQtYjE1MTgwYWZhZjllIiwiY2xpZW50X2lkIjoiZWZjIn0.NxiF4x39na3KdDUFz2zxqy1zSfJkj4FdKHflpgJUxzMgBq8bbJIFVkmwAUYA6_YXm6kGFcyTMgdiRIJpqc5buDPdV1vkzh4QKFTxMz9MF4i3vtIQ21Vm5W12KikWdWGGUXMD4udJwu7rmuIBtNIa-ciZOPADNrrXfuw7iML1xxAA-C0f4OTbiKqiXr3QEUZwcqZB17qfh_dVRRxgO-_uHUg84JDcpXEDQPzPWX68u1EHH4J6IcpMKn1VY9k3RcZU6pq-ndzQgBlKdVm2owA6i-UM9p1zSz7ZX_2wx0czEEcNF1rMdeIv5yxP9YEpWb14-GUG4qgpn_rAIQBJ7eu7xw
它在 jwt.io 网站上解码得很好,但由于我没有“秘密”密钥,它出现为“无效签名”。这很好,我不想验证它。
我想要的只是声明,但是当我使用 Java 库对其进行解码时,我得到的只是错误。
如果我手动解码(即拆分/base64 解码)就可以了。
那么,我对 Java 库做错了什么?
java - 为什么我的 Jose4j JSON Web Key 会导致这个 InvalidKeyException?
我正在使用 Jose4j 在 Java 中执行 JSON Web Token 的加密。
我创建一个键作为 JSON 格式的字符串传递给JsonWebKey.Factory.newJwk
方法,因此:
我把它传给工厂并得到JsonWebKey (jwk)
回报。然后将密钥(来自jwk.getKey()
方法)传递给 JsonWebEncryption 的setKey()
方法。我设置AlgorithmHeaderValue
和EncryptionMethodHeaderParameter
...
然后,当我调用jwe.getCompactSerialization()
它时会引发以下异常
我传入了 16 个字节,那么为什么这会计算为 128 的 96 位?
spring-security-oauth2 - 混合 Spring Security OAuth2 和 Jose4j
我想知道(在我尝试沿着这条路径实现一些东西之前)关于一种方法。假设我有一个完整的 OAuth2 系统(使用 spring boot 和 spring cloud,但不使用 spring cloud security)。到目前为止,这运行得很好,并支持几种不同的授权类型。我感兴趣的是在某些特殊情况下手动创建 JWT,然后将这个令牌与 Spring Security 一起使用的可能性。我查看了 jose4j,似乎我应该能够使用它来代替系统的授权服务器部分。请注意,这样做的目标是我必须创建一个通常由授权服务器生成的令牌。
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 - JOSE4J 是否会通过 OpenID Connect 发现文档支持 JWKS 密钥验证
JOSE4J 将 jwks_uri 作为其 JWT 验证的起点,我想知道是否可以支持 Discovery Document 作为起点,JOSE4J 将从那里获取 jwks_uri,然后转到 JWKS 密钥文档以选择公钥通过孩子匹配智威汤逊。这样我只需要在我的代码中硬编码发现文档 uri,因为我有点担心 jwks_uri 是否会在没有通知的情况下更改,据我所知,wellknow 发现文档是固定的。
这就是它现在的工作方式:
也许让解析器识别发现文档 uri 是否被传入并相应地表现会很好。
谢谢!
简