2013-03-20 98 views
0

目前我的系統運行如下的外部JNDI連接:在我的context.xmlTomcat的JNDI數據源建立自己的數據庫密碼

<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();` 

爲你會看到連接到已經在我的context.xml中設置的數據庫的密碼。有沒有什麼辦法可以在我的java代碼中設置數據庫密碼?原因是由於安全問題,密碼必須加密,所以我需要在我的Java代碼中進行解密才能getConnection()。

回答

0

當然,只是離開它的context.xml和使用DataSource.getConnection(username, password).

+0

請你與我分享這怎麼可能,如果我只想用的DataSource.getConnection(用戶名,密碼)? – user2074703 2013-03-21 07:52:10