Исключение шифрования при загрузке свойств приложения (шифрование Java jasypt)
При попытке установить модуль с помощью Maven выдает следующую ошибку:
org.jasypt.exceptions.EncryptionOperationNotPossibleException:
Encryption raised an exception.
A possible cause is you are using strong encryption algorithms and you have not
installed the Java Cryptography Extension (JCE) Unlimited Strength
Jurisdiction Policy Files in this Java Virtual Machine
Свойства приложения кодируются так:
app.check.url=ENC(sCO3322RNYdt3wPfO04GoaN9PijwJzUcn9rb4ggHymA\=)
И моя весенняя конфигурация выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="placeholderConfig" class="org.jasypt.spring.properties.EncryptablePropertyPlaceholderConfigurer">
<constructor-arg ref="configurationEncryptor"/>
<property name="ignoreResourceNotFound">
<value>true</value>
</property>
<property name="ignoreUnresolvablePlaceholders">
<value>false</value>
</property>
<property name="locations">
<list>
<!-- These always come from the file system in ./conf/appCtx -->
<value>file:../application.properties</value>
</list>
</property>
<property name="systemPropertiesModeName">
<value>SYSTEM_PROPERTIES_MODE_OVERRIDE</value>
</property>
</bean>
<bean id="configurationEncryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
<property name="config" ref="environmentVariablesConfiguration"/>
</bean>
<bean id="environmentVariablesConfiguration"
class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
<property name="algorithm" value="PBEWithMD5AndTripleDES"/>
<property name="passwordEnvName" value="APP_ENCRYPTION_PASSWORD"/>
</bean>
И у меня есть JDK 1.7, который имеет необходимые файлы JCE для шифрования.
Любые идеи о том, как решить эту проблему?
2 ответа
Вы не установили jce, по умолчанию присутствует в lib\security
. Но это не доступ или использование. Пожалуйста, скачайте JCE файлы и перезаписать существующие файлы. См. Свою ошибку you have not installed the Java Cryptography Extension (JCE)
- Перейдите по этой ссылке и исправьте свою ошибку. [или же]
2. org.jasypt.exceptions.EncryptionOperationNotPossibleException
Ваша проблема не в том, что у вас нет JCE. Ты сделаешь. Но из вашей конфигурации вы используете алгоритм TripleDES, и это требует установки JCE "Файлы политики неограниченной юрисдикции", как говорится в ошибке.
Эти файлы могут быть загружены с сайта Oracle (с той же страницы, на которой вы загружаете JDK) и распространяются по слегка отличающемуся лицензионному соглашению, потому что вы должны убедиться, что вы не из "запрещенной" страны (Иран, Северная Корея и т. Д.).)...
Смотрите этот вопрос в FAQ Jasypt: http://www.jasypt.org/faq.html.