【问题标题】:How would I use Maven to install the JCE Unlimited Strength Policy files?我将如何使用 Maven 安装 JCE Unlimited Strength Policy 文件?
【发布时间】:2011-03-26 10:36:54
【问题描述】:

我的一些代码需要 JCE 无限强度策略文件。我想将此依赖项添加到 Maven Pom 文件中,这样我团队中的其他开发人员就不必单独将其应用到他们的系统中。

我意识到最终部署到的系统需要手动安装 JCE 文件。这只是一个开发解决方案。

我在想我们会将策略文件添加到我们的存储库中,然后 maven 将能够处理安装,但我很惊讶我找不到其他人这样做(并在博客上写到它。)。

【问题讨论】:

    标签: java maven-2 jce


    【解决方案1】:

    Java 8 安全黑客

        // hack for JCE Unlimited Strength
        Field field = Class.forName("javax.crypto.JceSecurity").getDeclaredField("isRestricted");
        field.setAccessible(true);
    
        Field modifiersField = Field.class.getDeclaredField("modifiers");
        modifiersField.setAccessible(true);
        modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
    
        field.set(null, false);
    

    【讨论】:

    • 我正在使用java 1.8.0_102。它对我不起作用:(
    【解决方案2】:

    当我在谷歌上搜索策略 JAR 的 Maven 依赖项并意识到它是特定于 JRE 安装时,我找到了答案,因此将其作为 Maven 构建的一部分进行修复仅适用于开发人员,并且仅当您有权访问 /jre/lib 时/安全文件夹。对我来说,以下代码破解效果更好(将其作为您的应用程序执行的第一件事之一):

        try {
            Field field = Class.forName("javax.crypto.JceSecurity").getDeclaredField("isRestricted");
            field.setAccessible(true);
            field.set(null, java.lang.Boolean.FALSE);
        } catch (ClassNotFoundException | NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException ex) {
            ex.printStackTrace(System.err);
        }
    

    【讨论】:

    • 感谢 Bart,这节省了我的时间。
    • 嗨 Bart,随着 java1.8 的更新,此解决方案停止工作。你知道 Java1.8 的类似技巧吗?
    • 嗨,我在 OSX 上使用 Java 1.8.0_25,它仍然可以工作。
    • 那是因为 javax.crypto.JceSecurity.isRestricted 变成了 final bugs.openjdk.java.net/browse/JDK-8149417
    • @shashaDenovo Andrey Karayvansky 在这个线程中为 Java 1.8 提供了一个新的解决方案
    【解决方案3】:

    你可以试试这个:

    • 捆绑 (zip?) JCE 无限强度策略文件。
    • 将它们作为zip 依赖项安装到您的公司存储库中。
    • 使用 dependency:unpack 目标将创建的依赖项解压缩到 ${java.home}/jre/lib/security 作为构建的一部分,例如在initialize 期间(见Unpacking specific artifacts)。

    【讨论】:

      猜你喜欢
      • 2017-09-25
      • 1970-01-01
      • 1970-01-01
      • 2018-09-03
      • 2022-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多