【问题标题】:How to resolve Java EE Bad Practices: Direct Management of Connections如何解决 Java EE 不良实践:直接管理连接
【发布时间】:2013-04-12 13:49:41
【问题描述】:
我将我的 Java 应用程序 EAR 提交给 Veracode 安全测试工具,并在以下代码中发现 API Abuse- Direct Mangment of Connection 漏洞:
Connection con = DriverManager.getConnection (url, hsUserId, hsPassword);
请有人帮我解决这个问题。
【问题讨论】:
标签:
java
jdbc
security
veracode
【解决方案1】:
您的错误消息非常清楚地说明了这一点:
直接管理连接缺陷
因此,在容器中,您永远不应该手动创建连接,而是让容器来完成。
您说的是“J2EE”,还是指的是“Java EE”? (你应该添加相关标签!)
在第一种情况下,您必须进行 JNDI 查找:
InitialContext ctx = new InitialContext();
DataSource datasource = (DataSource) ctx.lookup("..");
Connection conn = datasource.getConnection();
在第二种情况下,您对其进行注释并让它注入:
@PersistenceContext
EntityManager em;