在 Spring Boot + Spring Integration 应用程序中加密邮件密码
Encrypt mail password in Spring Boot + Spring Integration application
我的应用程序是使用Springboot开发的,这个应用程序也是读取邮箱的,这个邮件读取部分是使用[=49=实现的] 集成框架。
我需要加密此应用程序中使用的所有密码。我正在使用 Jasypt 库 (http://www.jasypt.org/) 进行加密。所有密码加密工作正常,除了邮件密码。
问题:即邮件密码原样发送(未解密)。所以,邮件验证失败。
代码涉及所有其他密码仅使用 spring 引导,因此只有一个应用程序上下文存在。
但是,单独的邮件阅读部分 是通过使用Spring 集成框架实现的。此配置是使用 xml 文件完成的,此 xml 文件创建第二个应用程序上下文。因此,对于第二个应用程序上下文,密码解密不可访问。
Jasypt 库相关的加密代码存在于第一个应用程序上下文。
将下面的xml based configuration of Spring Integration 转换成Java based config解决问题吗? (因为,只有一个应用程序上下文)。
如果是,任何人都可以为以下内容提供 Java 配置 等价物 ( 在 Java 8 版本 之前)
<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>
为什么它在第二个应用程序上下文中?
您可以在 Spring 启动应用程序中使用 @ImportResource
将 xml 拉入主启动上下文。
有关示例,请参阅 here。
如果要转换成Java配置,有例子。
我的应用程序是使用Springboot开发的,这个应用程序也是读取邮箱的,这个邮件读取部分是使用[=49=实现的] 集成框架。
我需要加密此应用程序中使用的所有密码。我正在使用 Jasypt 库 (http://www.jasypt.org/) 进行加密。所有密码加密工作正常,除了邮件密码。
问题:即邮件密码原样发送(未解密)。所以,邮件验证失败。
代码涉及所有其他密码仅使用 spring 引导,因此只有一个应用程序上下文存在。 但是,单独的邮件阅读部分 是通过使用Spring 集成框架实现的。此配置是使用 xml 文件完成的,此 xml 文件创建第二个应用程序上下文。因此,对于第二个应用程序上下文,密码解密不可访问。
Jasypt 库相关的加密代码存在于第一个应用程序上下文。
将下面的xml based configuration of Spring Integration 转换成Java based config解决问题吗? (因为,只有一个应用程序上下文)。 如果是,任何人都可以为以下内容提供 Java 配置 等价物 ( 在 Java 8 版本 之前)
<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>
为什么它在第二个应用程序上下文中?
您可以在 Spring 启动应用程序中使用 @ImportResource
将 xml 拉入主启动上下文。
有关示例,请参阅 here。
如果要转换成Java配置,