【问题标题】:Jose4j library compatibility with Java 6Jose4j 库与 Java 6 的兼容性
【发布时间】:2017-04-13 21:47:24
【问题描述】:

我们正在考虑采用一个库来生成和使用 JSON Web 令牌。 Jose4j 似乎是一个不错的选择,但库“依赖项”声明“...Jose4j 使用/用于 Java 7 编译,也将在 Java 8 上运行...”并且我们当前的安装在 Java 6 版本上运行(迁移到更高版本是超出我们的能力范围),所以我们的问题很简单。

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

提前致谢

【问题讨论】:

    标签: jwt jose4j


    【解决方案1】:

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

    我相信有几个较旧版本的分支已经向后移植以使用 Java 6 编译和运行 - https://bitbucket.org/yosef_kitrossky/jose4j-jdk1.6/commits/all 是我所知道的最新版本,还有 https://bitbucket.org/ijazfx/jose4j/commits/all

    您也可以在没有太多麻烦的情况下对最新版本进行反向移植。代码库使用了一些 multi-catch、diamond 和 try-with-resources 语法,这些语法需要转换为 Java 7 之前的等效语法。也许有点乏味,但不是火箭手术。还有一些算法不起作用。有些可能只是在运行时不可用,有些像所有与 AES-GCM 相关的位,需要从代码中删除才能编译。

    由于某些单元测试使用大于 128 位的 AES 密钥http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

    ,您还需要准备好 JCE 无限强度管辖策略文件

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

    【讨论】:

    • 感谢您的回答。它肯定有帮助。有两个“调查”路径,您提到的那些分支(也许我们可以通过该反向移植达到我们想要的功能)和/或反向移植最后一个版本(考虑到您对哪些可能有效和哪些可能无效的提示)。再次感谢您的回答布赖恩,最好的问候。
    • 最近注意到这个 bitbucket.org/n_k_c/jose4j/commits/… 是在我认为是最近的分支中编译 6 的变化
    【解决方案2】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-23
      • 2015-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-08
      相关资源
      最近更新 更多