Tomcat JNDI数据源设置自己的数据库密码

时间:2013-03-20 06:44:25

标签: sql-server tomcat datasource jndi

目前我的系统正在运行外部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();`

当您看到已连接到已在我的context.xml中设置的DB的密码时。有什么办法可以在我的java代码中设置数据库密码吗?原因是由于安全问题,密码必须加密,所以我需要在我的Java代码中解密它以获取getConnection()。

1 个答案:

答案 0 :(得分:0)

当然,只需将其从context.xml中删除并使用DataSource.getConnection(username, password).