Как я могу преобразовать эту конфигурацию Jasypt XML в конфигурацию Java в моем приложении Spring? - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь преобразовать свою конфигурацию Jasypt на основе XML в конфигурацию на основе Java, но я не могу заставить ее работать.

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:encryption="http://www.jasypt.org/schema/encryption"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:jee="http://www.springframework.org/schema/jee"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.jasypt.org/schema/encryption http://www.jasypt.org/schema/encryption/jasypt-spring4-encryption-1.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd">

  <bean id="properties" class="org.jasypt.spring4.xml.encryption.EncryptablePropertiesFactoryBean">
    <property name="encryptor" ref="stringEncryptor"/>
    <property name="ignoreResourceNotFound" value="true"/>
    <property name="locations">
      <list>
        <jee:jndi-lookup jndi-name="admin_properties"
                         lookup-on-startup="true" expected-type="java.lang.String"
                         default-value="classpath:config/admin-properties.xml"/>
      </list>
    </property>
  </bean>

  <jee:jndi-lookup id="adminPassword" jndi-name="ADMIN_PASSWORD" lookup-on-startup="true"
                   expected-type="java.lang.String" default-value="ADMIN_PASSWORD"/>

  <encryption:encryptor-config id="encryptorConfiguration" algorithm="PBEWITHSHA256AND256BITAES-CBC-BC"
                               password="#{adminPassword}"
                               provider-class-name="org.bouncycastle.jce.provider.BouncyCastleProvider"/>
  <encryption:string-encryptor id="stringEncryptor" config-bean="encryptorConfiguration"/>

  <context:property-placeholder properties-ref="properties" ignore-unresolvable="true"/>

</beans>

Таким образом, существует файл admin-properties.xml, содержащий соответствующие свойства приложения.Первая ошибка, с которой я сталкиваюсь сейчас при запуске сервера приложений: «Не удается загрузить класс драйвера JDBC« $ {jdbc.driverClass: org.h2.Driver} »», что является результатом невозможности чтения свойств из файла свойств.(из-за моей неправильной конфигурации).

Я не пошел дальше этого:

@Configuration
public class JasyptConfig {

    @Bean
    public EncryptablePropertiesFactoryBean properties() throws Exception {
        final EncryptablePropertiesFactoryBean encryptablePropertiesFactoryBean = new EncryptablePropertiesFactoryBean();

        StandardPBEStringEncryptor stringEncryptor = new StandardPBEStringEncryptor();
        stringEncryptor.setProvider(new BouncyCastleProvider());
        stringEncryptor.setAlgorithm("PBEWITHSHA256AND256BITAES-CBC-BC");

        // using default password for now..
        stringEncryptor.setPassword("ADMIN_PASSWORD");

        encryptablePropertiesFactoryBean.setEncryptor(stringEncryptor);
        encryptablePropertiesFactoryBean.setIgnoreResourceNotFound(true);
        encryptablePropertiesFactoryBean.setLocations(new ClassPathResource("config/admin-properties.xml"));

        return encryptablePropertiesFactoryBean;
    }
}

Любая помощь приветствуется!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...