2010-08-06 2 views
19

Einige Code ich benötige die JCE unbegrenzte Strength Policy Files. Ich möchte diese Abhängigkeit in die Maven Pom-Datei einfügen, damit die anderen Entwickler in meinem Team diese nicht einzeln auf ihre Systeme anwenden müssen.Wie würde ich Maven verwenden, um die JCE Unlimited Strength Policy-Dateien zu installieren?

Ich bin mir bewusst, dass die Systeme, für die diese Version bereitgestellt wird, die JCE-Dateien manuell installieren müssen. Dies ist nur eine Entwicklungslösung.

Ich dachte, dass wir die Richtliniendateien zu unserem Repository hinzufügen würden und maven wäre in der Lage, die Installation zu erledigen, aber ich bin überrascht, dass ich niemanden finde, der das tut (und darüber bloggt).

Antwort

6

Sie könnten vielleicht diese versuchen:

  • Bundle (zip?) Die JCE unbegrenzte Kraft Richtliniendateien.
  • Installieren Sie sie in Ihrem Unternehmens-Repository als zip Abhängigkeit.
  • Verwenden Sie das Ziel dependency:unpack, um die erstellte Abhängigkeit als Teil Ihres Builds, z. B. ${java.home}/jre/lib/security, zu entpacken. während initialize (siehe Unpacking specific artifacts).
14

ich gefunden habe, die Antwort, wenn Sie Maven Abhängigkeiten für Politik JARs googeln und erkannte, dass es JRE Installation spezifisch, so dass diese im Rahmen der Maven Build Festsetzung wird nur für Entwickler arbeiten und nur dann, wenn Sie Rechte zum/jre/lib/Sicherheitsordner. Für mich ist der folgende Code-Hack funktioniert viel besser (aufrufen dies als eines der ersten Dinge, die Anwendung der Fall ist):

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); 
    } 
+0

Dank Bart hacken Diese Ans meine Zeit gespeichert. – shashaDenovo

+0

Hi Bart, mit Update auf java1.8 hat diese Lösung aufgehört zu arbeiten. Kennst du einen ähnlichen Trick auch für Java1.8? – shashaDenovo

+0

Hallo, ich benutze Java 1.8.0_25 auf OSX und es funktioniert immer noch. – Marcel

8

Java 8 Sicherheit

// 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); 
+0

von Andrey Karayvansky für Java 1.8 in diesem Thread ist = 0 Es funktioniert, ich bin erstaunt. –

+0

Ich benutze 'Java 1.8.0_102'. Es funktioniert nicht für mich :( –

Verwandte Themen