Podczas pracy nad innym problemem (związanym z RMI), zaktualizowałem "folder bezpieczeństwa" systemu za pomocą plików zasad "nieograniczonej siły", a teraz moja aplikacja zawodzi w inny sposób. Dostaję długi zrzut stosu, z którego odnoszą się następujące bity:java.lang.SecurityException: Pliki zasad jurysdykcji nie są podpisane przez zaufanego sygnatariusza
Exception in thread "main" java.lang.ExceptionInInitializerError
[...crop...]
Caused by: java.lang.SecurityException: Can not initialize cryptographic mechanism
at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:86)
... 17 more
Caused by: java.lang.SecurityException: The jurisdiction policy files are not signed by a trusted signer!
[...crop...]
Um, WTF? Jedyna zmiana polegała na tym, że odłożyłem na bok orignal jar files i dodałem te nieograniczone w $ JAVA_HOME/lib/security. Ten katalog wygląda teraz następująco:
$ ls
blacklist javaws.policy trusted.libraries
cacerts local_policy.jar US_export_policy.jar
java.policy local_policy.jar.strong US_export_policy.jar.strong
java.security local_policy.jar.unlimited US_export_policy.jar.unlimited
Oczywiście dostępne są wersje .strong i .unlimited, dzięki czemu mogę szybko się przełączać.
Wskazówki były krótkie i proste, a wydaje się, że TYLKO przewidują zastąpienie tych dwóch plików (local_policy.jar i US_exportpolicy.jar).
Co jeszcze można zrobić?
Należy zauważyć, że wersje java i pliki strategii są jak dotąd najmłodsze: odpowiednio 1.7.0_03 i jce_policy-6.
P.S. Artykuł o podobnym tytule, znaleziony pod numerem here, nie był wcale pomocny.
Zapoznaj się z [Jak zainstalować pliki strategii Java Cryptography Extension (JCE) o nieograniczonej sile] (http://opensourceforgeeks.blogspot.in/2014/09/how-to-install-java-cryptography.html) –