java.lang.SecurityException: файлы политики юрисдикции не подписаны доверенным лицом

Работая над другой проблемой (связанной с RMI), я обновил системную «папку безопасности» с файлами политики «неограниченной силы», и теперь мое приложение дает сбой по-другому. Я получаю длинный дамп стека, в котором кажутся уместными следующие биты:

Exception in thread "main" java.lang.ExceptionInInitializerError

[...crop...]

Caused by: java.lang.SecurityException: Can not initialize cryptographic mechanism
        at javax.crypto.JceSecurity.(JceSecurity.java:86)
        ... 17 more
Caused by: java.lang.SecurityException: The jurisdiction policy files are not signed by a trusted signer!

[...crop...]

Гм, WTF? ЕДИНСТВЕННОЕ изменение заключалось в том, что я переместил исходные файлы jar в сторону и добавил неограниченные файлы в $JAVA_HOME/lib/security. Этот каталог теперь выглядит так:

$ 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

Конечно, есть версии .strong и .unlimited, так что я могу быстро переключиться обратно.

Инструкции были короткими и простыми, и казалось, что они предусматривают ТОЛЬКО замену этих двух файлов (local_policy.jar и US_exportpolicy.jar).

Что еще делать?

Обратите внимание, что версии java и файлов политик самые молодые на сегодняшний день: 1.7.0_03 и jce_policy-6 соответственно.

П.С. Статья с таким же названием, найденная здесь, ничем не помогла.

42
задан Hash 5 December 2017 в 16:08
поделиться