Java.lang.SecurityException: les fichiers de la Politique de la juridiction ne sont pas signés par un signataire de confiance

en travaillant sur un autre problème (lié à RMI), j'ai mis à jour le" dossier de sécurité "du système avec les fichiers de politique" unlimited strength " et maintenant mon application échoue d'une manière différente. Je reçois un long dump stack, dont les bits suivants semblent pertinents:

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? Le seul changement est que j'ai déplacé les fichiers JAR orignal de côté et ajouté les illimités dans $JAVA_HOME/lib/security. Ce répertoire ressemble maintenant à ceci:

$ 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

bien sûr, l' .fort .les versions illimitées sont là pour que je puisse revenir rapidement.

les directions étaient courtes et simples, et il semblerait qu'ils n'envisagent que le remplacement de ces deux fichiers (local_policy.jar and US_exportpolicy.pot.)

Qu'y a-t-il d'autre à faire?

notez que les versions de java et les fichiers de politique sont les plus jeunes à ce jour: 1.7.0_03, et jce_policy-6, respectivement.

P. S. L'article du même titre, trouvé ici , n'a été d'aucune aide du tout.

39
demandé sur Mark 2012-03-17 02:15:49

4 réponses

plutôt que de mélanger les versions d'exécution et de fichier de politique, vous devriez utiliser les fichiers de politique pour Java 7.

49
répondu erickson 2015-08-27 15:16:55

cela se produit lorsque la version Java ne correspond pas à la version des fichiers de politique. Vous pouvez télécharger les fichiers de politique pertinents à partir des liens suivants.

Politique de pots pour Java 8

la Politique de pots pour Java 7

la Politique de pots pour Java 6

14
répondu prageeth 2015-08-27 07:06:45

cela pourrait se produire s'il y a des fichiers jar standard de la Politique quelque part dans classpath. Je suggère de trouver et de remplacer toute la Politique local_policy.jar et us_export_policy.les fichiers jar avec les versions illimitées de ces pots dans votre machine. Si vous utilisez le serveur WAS/Portal/RAD D'IBM, voici le lien vers la Politique sans restriction de JCE jars .

4
répondu kpamu 2014-09-16 15:56:51

il est possible que vous ayez différentes versions du JDK. Par exemple, si votre JAVA_HOME pointe vers la version 7, mais que dans votre chemin la version 6 apparaît avant la version 7, cette erreur pourrait apparaître.

4
répondu Somaiah Kumbera 2016-04-21 08:56:53