2016-03-14 104 views
2

我的应用程序正在使用春季启动开发的,这个应用程序还读取信箱,这个信箱的阅读部分是用Spring集成框架实现。加密邮件密码

我需要加密在此应用程序中使用的所有密码。我正在使用Jasypt库(http://www.jasypt.org/)进行此加密。所有密码加密工作正常,,除了邮件密码

问题:即,邮件密码原样发送(,未解密)。所以,邮件验证失败。

代码涉及到所有其他的密码只使用春天开机,所以只有一个应用程序上下文存在。 但是,单独邮件阅读部分是通过使用Spring集成框架实现的。这个配置是使用xml文件完成的,这个xml文件创建了第二个应用程序上下文。因此,密码解密为不可访问为这第二个应用程序上下文。里面1应用程序上下文存在

Jasypt库相关的加密代码。

将Spring集成的下方基于XML的配置转换为基于Java的配置解决这个问题? (因为只有一个应用程序上下文)。 如果是的话,任何人都可以(之前的Java版本8)提供的Java配置为以下相当于

<beans> 
    <int:channel id="receiveChannel" /> 
    <mail:inbound-channel-adapter id="pop3ShouldDeleteTrue" 
            store-uri="${mail.pop3.user.folder.uri}" 
         channel="receiveChannel" 
         should-delete-messages="false" 
         should-mark-messages-as-read="true" 
         auto-startup="true" 
         java-mail-properties="javaMailProperties"> 

     <int:poller max-messages-per-poll="1" fixed-rate="${actor.email.polling.interval}"> 
     </int:poller> 
    </mail:inbound-channel-adapter> 
    <context:property-placeholder location="file:./application-${env}.properties" local-override="true" /> 
    <util:properties id="javaMailProperties"> 
     <prop key="${mail.socketFactory}">false</prop> 
     <prop key="mail.debug">false</prop> 
     <prop key="mail.store.protocol">${mail.store.protocol}</prop> 
    </util:properties> 
</beans> 

回答

1

为什么在第二个应用程序上下文?

您可以使用@ImportResource在Spring启动应用程序的XML拉到主引导环境。

为一个例子见here

如果你想转换成Java配置,this answer有一个例子。

+0

谢谢加里。第一种方法正在为我工​​作:-) –