【问题标题】:Mutli oralce Datasource Password Encryption in JbossJboss中的多oracle数据源密码加密
【发布时间】:2018-03-17 07:41:28
【问题描述】:

我需要为 Jboss 配置加密密码。现在我在 oracle-ds.xml 中有直接的用户名密码。

https://docs.jboss.org/jbosssecurity/docs/6.0/security_guide/html/Encrypting_Data_Source_Passwords.html

在浏览完上面的Url之后,我从oracle-ds.xml中删除了用户名和密码,并在login-config.xml中添加了一个新策略,并在oralce-ds.xml中映射了该策略。

在单个 JNDI 名称的情况下,它工作正常。 (单一数据源)

在另一个应用程序中,我在 Oracle-ds.xml 中有 5 个数据源。

1) 我尝试在 login-config 中添加不同的策略并在 oracle-ds.xml 中分别映射 - 但它不起作用

2) 我尝试在单一策略下添加登录模块,但失败了

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: 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/

      【讨论】:

        猜你喜欢
        • 2012-06-04
        • 1970-01-01
        • 2019-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多