2017-06-19 36 views
0

如下我已加密的數據源數據源加密6

<datasource jndi-name="java:/OracleDS" pool-name="OracleDS" enabled="true"> 
<connection-url>jdbc:oracle:thin:@abc.com:1001:DEV1</connection-url> 
<driver>oracle</driver> 
<security> 
<security-domain>encrypted-ds</security-domain> 
</security> 
<validation> 
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/> 
<validate-on-match>true</validate-on-match> 
<background-validation>false</background-validation> 
<stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/> 
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/> 
</validation> 
</datasource> 

- >添加的安全域在安全域標籤:

<security-domain name="encrypted-ds" cache-type="default"> 
<authentication> 
<login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required"> 
<module-option name="username" value="308c162f7c2ec7f"/> 
<module-option name="password" value="308c162f7c2ec7f"/> 
<module-option name="managedConnectionFactoryName" value="jboss.jca:service=LocalTxCM,name=OracleDS"/> 
</login-module> 
</authentication> 
</security-domain> 

我想在管理控制檯中將用戶名密碼設置爲純文本/'*'(如果是密碼)。 是否可能。 ??任何其他加密技術,我可以用來做同樣的?

回答

0

在Jboss EAP 6中,您可以使用SecureIdentityLoginModule添加加密的密碼域。例如,您可以定義standalone.xml或domain.xml中安全域:

<security-domain name="EncryptedPassword"> 
    <authentication> 
    <login-module code="SecureIdentity" flag="required"> 
     <module-option name="username" value="test"/> 
     <module-option name="password" value="encrypted_password"/> 
    </login-module> 
    </authentication> 
</security-domain> 

然後,您可以在standalone.xml或域使用該用戶ID /密碼組合的特定數據源添加此安全域.XML:

<datasource ... > 
     ..... 
     <security> 
       <security-domain>EncryptedPassword</security-domain> 
     </security> 
    </datasource> 

要加密的口令本身,您可以運行此命令(請覈實picketbox罐子,罐子記錄的版本在您的特定AS7下載相應替代):

java -cp $JBOSS_HOME/modules/org/picketbox/main/picketbox-4.0.6.<beta|final>.jar:$JBOSS_HOME/modules/org/jboss/logging/main/jboss-logging-3.1.0.<some_version>.jar:$CLASSPATH org.picketbox.datasource.security.SecureIdentityLoginModule password 

這將返回一個加密密碼,您可以在安全域中使用該密碼。

你可以閱讀更多關於JBoss的AS7安全子系統here

由於開放的烴源巖,你可以看到編碼代碼的SecureIdentityLogin源代碼是如何工作的。您會注意到它在源代碼中使用Blowfish進行加密。

+0

我也是這樣做的。但管理控制檯UI顯示加密密碼,如'308c162f7c2ec7f'。它不會顯示解密的fomat。 – Sona

+0

我想讓用戶界面顯示解密的字符串。是否有可能? – Sona

+0

您需要了解的所有內容可以在https://source.jboss.org/browse/PicketBox/trunk/security-jboss-sx/jbosssx/src/main/java/org/picketbox/datasource/security/SecureIdentityLoginModule中找到。 java?r = 276和https://docs.jboss.org/author/display/AS71/Security+subsystem+configuration –