2013-11-22 249 views
2

我有一个Spring bean,它使用一个用户名/密码作为其构造函数的参数的一部分内加密密码:Spring配置文件

<bean id="mysender" class="org.springframework.ws.transport.http.CommonsHttpMessageSender"> 
     <property name="c"> 
      <bean class="org.apache.commons.httpclient.UsernamePasswordCredentials"> 
       <constructor-arg value="plaintext"/> 
       <constructor-arg value="plaintext"/> 
      </bean> 
     </property> 
    </bean> 

我可以使用jasypt这些参数仅加密配置文件? bean“org.apache.commons.httpclient.UsernamePasswordCredentials”将用纯文本值实例化,但对于用户它们将显示为加密的。

我可以使用这个答案使用核心Java库代码:Encrypt Password in Configuration Files?和手动从Java中创建bean mysender,然后depcript领域的实例org.apache.commons.httpclient.UsernamePasswordCredentials

之前还是有尝试我没有提到哪种方法会实现这个?

+0

你是什么原因想要做到这一点?密码是否会在每个安装的基础上发生变化,还是类似于整个应用程序的API密钥? – chrylis

+0

@chrylis明文凭证不要存储在配置文件中。密码将在每个安装基础上更改 –

+0

但将它们外部化为属性文件或JNDI是没有意义的? – chrylis

回答

1
+1

当我网络搜索这个确切的问题时,在http://www.jasypt.org/spring3.html上的Spring集成Jasypt文档是紧接在这个SO问题之前的结果。他们非常直接和全面。我自己,我会去第二部分指导的“外部化到属性文件”路线。其他Jasypt文档除了使用环境变量来存储加密密码外,还提供了有关不同PBE配置的详细信息。 – Greg