我们正在考虑采用库来生成和使用JSON Web令牌。 Jose4j似乎是一个不错的选择,但库“Dependencies”表示“... Jose4j是用Java 7编译的,并且还将在Java 8上运行......”我们当前的安装在Java 6版本上运行(迁移到更高版本是超出我们的范围),所以我们的问题很简单。
有没有机会将Jose4j与Java 6集成? (完全没有,有一些限制,可以通过添加一些特定的库等以任何方式实现。)
提前致谢
答案 0 :(得分:2)
让jose4j在Java 6上运行(可能)是可能的,但需要重新编译和一些代码更改。
有一些旧版本的旧版本,我认为已经反向移植以编译和运行Java 6 - https://bitbucket.org/yosef_kitrossky/jose4j-jdk1.6/commits/all是我所知道的最新版本,并且还有https://bitbucket.org/ijazfx/jose4j/commits/all < / p>
你可以做一个最新的后端,没有太多麻烦。代码库使用一些需要转换为Java 7之前版本的多catch,菱形和try-with-resources语法。可能有点乏味但不是火箭手术。还有一些算法不起作用。有些可能在运行时不可用,有些像所有与AES-GCM相关的位需要从代码中删除以使其编译。
您还希望拥有JCE无限强度管辖权政策文件,因为某些单元测试使用大于128位的AES密钥http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
我希望这会有所帮助。不幸的是,我自己没有带宽来维护Java 6兼容版本。
答案 1 :(得分:0)
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。