代码之家  ›  专栏  ›  技术社区  ›  foobarfuzzbizz

如何在Java配置文件中存储敏感数据?

  •  3
  • foobarfuzzbizz  · 技术社区  · 14 年前

    我有一些代码要公开。代码通过服务器发送电子邮件,连接到数据库,以及其他需要用户名/密码的任务。

    我想把密码和类似的东西存储在一个单独的配置文件中,这样我就不必在每次提交时清理我的代码。

    我该怎么做?在C中使用define很容易做到,但我不确定如何在Java中实现这一点。

    编辑:我使用的环境是玻璃鱼

    2 回复  |  直到 14 年前
        1
  •  8
  •   JOTN    14 年前

    基本方法是将信息放在属性文件中,并在运行时使用属性类加载它。如果您使用的是J2EE服务器,则数据库连接在服务器中配置,并且代码以抽象名称引用它们。

    我想我应该补充一下,如果您使用的是服务器,那么如何配置它以及如何获得到您的代码的连接将因服务器和J2EE级别的不同而有所不同,因此请发布您的环境。仅仅通过查看javadoc和load()方法,使用Properties类是非常明显的。

        2
  •  1
  •   JOTN    14 年前

    在glassfish中,转到管理控制台并在Resources下创建一个新的连接池。它定义了数据库连接,并将在应用程序之间共享这些连接的池。现在在JDBC资源下,创建一个新条目,将池映射到一个名称。名称通常类似于jdbc/myappname。

    对于J2EE5或更高版本的应用程序,现在可以将其添加为类级变量:

    @资源(mappedName=“jdbc/myappname”)数据源myDS;

    在运行时,服务器会将该资源注入数据库池。然后,当需要连接时,可以在任何方法中执行此操作:

    连接conn=myDS.getConnection();

    结果是代码根本不需要关心数据库连接信息或管理连接池。您可以在开发和生产服务器上部署相同的代码,它们将获得适当的连接。为了获得注入,它必须是服务器创建的类,如EJB、servlet、标记库处理程序或JSF管理的be an。