Jak używać Mavena do instalacji plików JCE Unlimited Strength Policy?

Jakiś kod który mam wymaga plików JCE unlimited Strength Policy. Chciałbym dodać tę zależność do pliku Maven Pom, aby inni programiści w moim zespole nie musieli indywidualnie stosować tego do swoich systemów.

Zdaję sobie sprawę, że systemy, do których zostanie to wdrożone, będą musiały ręcznie zainstalować pliki JCE. Jest to tylko rozwiązanie rozwojowe.

Myślałem, że dodamy pliki zasad do naszego repozytorium i maven będzie mógł obsługa instalacji, ale dziwię się, że nie mogę znaleźć nikogo innego, kto to robi (i bloguje o tym.).

Author: Pascal Thivent, 2010-08-06

3 answers

Możesz spróbować tego:

  • Bundle (zip?) pliki polityki JCE unlimited strength.
  • zainstaluj je w firmowym repozytorium jako zależność zip.
  • Użyj dependency:unpack cel rozpakowanie utworzonej zależności do ${java.home}/jre/lib/security jako części kompilacji, np. podczas initialize (Zobacz rozpakowywanie konkretnych artefaktów ).
 6
Author: Pascal Thivent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-07 14:24:18

Znalazłem tę odpowiedź, szukając w googlach zależności Mavena dla słoików zasad i zdałem sobie sprawę, że jest to specyficzna instalacja JRE, więc naprawienie tego jako części Maven build będzie działać tylko dla programistów i tylko wtedy, gdy masz prawa do folderu /jre/lib/security. Dla mnie poniższy hack kodu działa znacznie lepiej (wywołaj to jako jedną z pierwszych rzeczy, które robi Twoja aplikacja):

    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);
    }
 14
Author: Bart Prokop,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-29 13:30:00

Java 8 security hack

    // 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);
 10
Author: Andrii Karaivanskyi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-06 00:50:03