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

标签 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 中设置。有什么办法可以在我的 java 代码中设置数据库密码?原因是由于安全问题,密码必须加密,所以我需要在我的 Java 代码中解密它以便 getConnection()。

最佳答案

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

关于sql-server - Tomcat JNDI 数据源设置自己的数据库密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15516977/

相关文章:

java - Tomcat多个数据源与解密密码逻辑

spring - 更改数据源连接 url 运行时

java - 如何使用 Spring Data JPA ORM 在运行时动态切换数据库

sql-server - SQL谜题,为什么我的更新不是随机的?

sql-server - 如果由于 order by 子句中的 case 语句而导致 SELECT DISTINCT 错误,则 ORDER BY 项必须出现在选择列表中

c# - 关闭主线程

tomcat - 尝试在tomcat中查看html文件时出现404错误

java - HTTP 状态 503 - 此应用程序当前在部署时不可用

Tomcat session 反序列化失败并出现 ClassNotFoundException

sql - SQL Server 2016 中与小数相乘会导致值不正确