0

現在、私のシステムは以下のように外部 JNDI 接続を実行しています。

私のcontext.xmlで:

<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/sql" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" 
maxWait="10000" username="sa" password="sa" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost\sqlexpress:1433;databaseName=Agent_DB">                 
</Context>

私のJavaコード:

Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/sql");          
if (envContext == null) throw new Exception("Error: No Context");
if (ds == null) throw new Exception("Error: No DataSource");
if (ds != null) conn = ds.getConnection();`

DB に接続するためのパスワードが context.xml に既に設定されていることがわかります。Java コードでデータベースのパスワードを設定する方法はありますか? その理由はセキュリティ上の問題によるものです。パスワードを暗号化する必要があるため、getConnection() を実行するには、Java コードでパスワードを復号化する必要があります。

4

1 に答える 1

0

確かに、context.xmlから除外して使用してくださいDataSource.getConnection(username, password).

于 2013-03-20T06:52:33.483 に答える