Jose4j 库与 Java 6 的兼容性

Jose4j library compatibility with Java 6

我们正在考虑采用一个库来生成和使用 JSON Web 令牌。 Jose4j 似乎是一个不错的选择,但库 "Dependencies" 声明“...Jose4j 已编译 with/for Java 7 并且还将 运行 在 Java 8 上编译... " 以及我们当前在 Java 6 版本上的安装 运行(我们无法迁移到更高版本),所以我们的问题很简单。

是否有机会将 Jose4j 与 Java 6 集成? (一点也不,有一些限制,可以通过添加一些特定的库等以任何方式实现)

提前致谢

在 Java 6 上将 jose4j 升级到 运行 是(可能)可能的,但需要重新编译和一些代码更改。

有一些较旧版本的分支,我相信它们已经向后移植到编译和 运行 与 Java 6 - https://bitbucket.org/yosef_kitrossky/jose4j-jdk1.6/commits/all is the most recent that I know about and there's also https://bitbucket.org/ijazfx/jose4j/commits/all

您也可以毫不费力地反向移植最新版本。代码库使用了一些 multi-catch、diamond 和 try-with-resources 语法,这些语法需要转换为 Java 7 之前的等价物。也许有点乏味,但不是火箭手术。还有一些算法是行不通的。有些可能只是在 运行 时不可用,有些,如所有 AES-GCM 相关位,需要从代码中删除才能编译。

您还需要 JCE Unlimited Strength Jurisdiction Policy File(s),因为一些单元测试使用大于 128 位的 AES 密钥http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

希望对您有所帮助。不幸的是,我自己没有足够的带宽来维护 Java 6 兼容版本。

Nimbus JOSE + JWT 从 4.11.1 版本开始支持 Java 6。

documentation开始,你只需要在依赖中通知classifier

<dependency>
    <groupId>com.nimbusds</groupId>
    <artifactId>nimbus-jose-jwt</artifactId>
    <classifier>jdk16</classifier>
    <version>[ version ]</version>
</dependency>

您可以找到可用的版本 here