2017-05-29 108 views
0

我们正在将基于ant的spring 3.1应用程序迁移到基于maven的spring 4.3.8。我们正在用Jasypt 1.9.2加密我们的属性文件条目。然而,当应用程序启动时,它抛出在WEB-INF/lib文件夹Jasypt 1.9.2是否与Spring 4.3.8兼容?

Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer] for bean with name 'propertyPlaceholderConfigurer' defined in ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer 

jasypt-1.9.2和jasypt-spring31-1.9.2罐可用。下面是应用程序上下文:

<?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:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd 
     http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd 
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> 

    <mvc:annotation-driven /> 
    <mvc:resources mapping="*.html" location="/" /> 

    <context:component-scan base-package="com.xyz" /> 
    <bean id="propertyPlaceholderConfigurer" 
     class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer"> 
     <constructor-arg ref="configurationEncryptor" /> 
    </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="PBEWithMD5AndDES" /> 
     <property name="password" value="xxxx" /> 
    </bean> 
</beans> 

Maven的条目是:

<dependency> 
     <groupId>org.jasypt</groupId> 
     <artifactId>jasypt-spring31</artifactId> 
     <version>1.9.2</version> 
</dependency> 

回答

0

号根据http://jasypt.org/encrypting-configuration.html

Spring的集成的.properties文件透明解密:Jasypt可以融入配置Spring框架系统(2.x和3.x)并透明地解密Spring应用程序使用的.properties文件。了解更多信息:Spring 2.x,Spring 3.0,Spring 3.1。