2013-08-22 193 views
0

我使用的彈簧蒙戈模板蒙戈DB服務器,我需要在屬性文件中對密碼進行加密,並在蒙戈模板解密春蒙戈模板密碼加密

我使用UserCredentials類來傳遞用戶名&密碼。

任何一個可以幫助如何改寫這個類來解密加密的密碼,並傳遞到蒙戈模板

<bean id="simpleJdbcTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> 
<constructor-arg name="mongo" ref="mongo"/> 
<constructor-arg name="databaseName" value="mooadmin"/> 
<constructor-arg name="userCredentials" ref="mongoCredentials"/> 
</bean> 

<!-- Factory bean that creates the Mongo instance --> 
<bean id="mongo" class="org.springframework.data.mongodb.core.MongoFactoryBean"> 
<property name="host" value="${mongo.server}"/> 
<property name="port" value="${mongo.port}"/> 
</bean> 

<bean id="mongoCredentials" 
    class="org.springframework.data.authentication.UserCredentials"> 
    <constructor-arg name="username" value="${mongo.username}" /> 
    <constructor-arg name="password" value="${mongo.password}" /> 
</bean> 
+0

請參閱http://stackoverflow.com/questions/992019/java-256-bit-aes-password-基於加密的 – gerrytan

+0

幫助需要覆蓋類或解密密碼到Mongotemplate的方式,而不是詢問加密/解密機制的幫助 – user1032521

回答

2

看到這裏的加密/解密機制:Java 256-bit AES Password-Based Encryption

假設你已經想通了如何根據上面的鏈接解密字符串,你可以簡單地覆蓋UserCredentials的密碼獲得者類

package com.mycompany; 

// imports.. 

public class UserCredentials extends org.springframework.data.authentication.UserCredentials { 

    private String decrypt(String encryptedStr) { 
    // your decryption code goes here... 
    } 

    @Override 
    public String getPassword() { 
    return decrypt(super.getPassword()); 
    } 
} 

Pla CE加密的密碼在你的屬性在Spring XML配置文件中的文件和設置UserCredentials子類:

<bean id="mongoCredentials" 
    class="com.mycompany.UserCredentials"> 
    <constructor-arg name="username" value="${mongo.username}" /> 
    <constructor-arg name="password" value="${mongo.encryptedPassword}" /> 
</bean>