【问题标题】:Mutli oralce Datasource Password Encryption in JbossJboss中的多oracle数据源密码加密
【发布时间】:2018-03-17 07:41:28
【问题描述】:
【问题讨论】:
标签:
oracle
jboss
jndi
password-encryption
login-config.xml
【解决方案1】:
如果由于存储在应用程序的 persistence.xml 中的名称而只需要将 Oracle 连接映射到 N 个不同的 JNDI 名称,则可以使用别名的概念。
<mbean code="org.jboss.naming.NamingAlias"
name="jboss.jca:name=jdbc/myFirstDS,service=DataSourceBinding">
<attribute name="ToName">java:jdbc/mySecondDS</attribute>
<attribute name="FromName">java:jdbc/myFirstDS</attribute>
</mbean>
【解决方案2】:
我没有在 Jboss 中明确尝试过,但也许更简单的选择是不要将密码(明文或加密)存储在您的配置文件中,而是存储在 Oracle 钱包中?
您可以创建一个钱包,以便将密码加密存储在其中,然后连接信息将是:
<module-option name="username">/</module-option>
<module-option name="password"></module-option>
您配置钱包并进行如下设置:
mkstore -create -wrl c:\oracle\wallet
mkstore -wrl c:\oracle\wallet -createCredential MYDB scott tiger
其中用户=scott,密码=tiger,对于数据库“MYDB”,sqlnet.ora 指向钱包所在的位置:
SQLNET.WALLET_OVERRIDE=TRUE
WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=c:\oracle\wallet)))
你可以在这里找到一个完整的例子:
https://connor-mcdonald.com/2015/09/21/connection-shortcuts-with-a-wallet/