Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将密码移出战争_Java_Tomcat_Jakarta Ee_War - Fatal编程技术网

Java 将密码移出战争

Java 将密码移出战争,java,tomcat,jakarta-ee,war,Java,Tomcat,Jakarta Ee,War,我们有一个在tomcat上运行的web应用程序,它在一些.java文件中具有硬编码密码。我们的安全人员一点也不高兴,他们要求我们将文件移到外部 我的假设是,最好的方法是在tomcat/conf目录中放置一个属性文件?或者在一个配置文件中设置某种JDNI属性 是否有一种普遍可接受的方法来实现这一点 我看到这篇文章对非tomcat有一些答案: 为了更具体,我们有应用程序管理的数据库连接,我想获取凭据。我假设我需要了解如何将它们放入JNDI资源中,然后查询该资源中的用户名/密码?一个相当简单的解决方案

我们有一个在tomcat上运行的web应用程序,它在一些
.java
文件中具有硬编码密码。我们的安全人员一点也不高兴,他们要求我们将文件移到外部

我的假设是,最好的方法是在tomcat
/conf
目录中放置一个属性文件?或者在一个配置文件中设置某种JDNI属性

是否有一种普遍可接受的方法来实现这一点

我看到这篇文章对非tomcat有一些答案:


为了更具体,我们有应用程序管理的数据库连接,我想获取凭据。我假设我需要了解如何将它们放入
JNDI
资源中,然后查询该资源中的用户名/密码?

一个相当简单的解决方案就是通过以下方式从应用程序外部化凭据:

  • 在appserver配置中创建JNDI条目
  • 限制对此文件的访问(只有正在进行relase的人才能访问该文件)
  • 让应用程序使用JNDI资源获取连接
这样,开发人员(或任何有权访问源代码的人)将不知道密码。如果您想要更安全的方法,还需要对密码进行编码,而不是将其存储为明文。这显然需要额外的努力,因此您需要决定是否值得这样做。

我建议这样做:

  • 如果凭据来自数据库,我建议您可以使用JNDI别名,JNDI将在应用服务器上配置

  • 如果凭据来自其他用途,则需要加密并设置属性文件:解析凭据的服务器将需要具有算法

  • 在任何其他情况下,用户都需要实时输入凭据


这些密码是什么?可能与存储在O/S用户环境中的密码重复可能与存储在O/S用户环境中的密码重复可能与存储在O/S用户环境中的密码重复可能与存储在O/S用户环境中的密码重复可能与存储在O/S用户环境中的密码重复可能与存储在O/S用户环境中的密码重复不同。您是否可以发布一个示例别名以及我如何从bean中访问。在这个文件中,您将读取一个值,并通过一个主类将每个属性加载到一个变量中。在Bean文件中,您可以使用setter方法进行设置,