【问题标题】:Hibernate log4j.properties print DB uname & passHibernate log4j.properties 打印数据库名称并通过
【发布时间】:2010-09-07 07:53:23
【问题描述】:

我的故事如下。 我有一个连接到嵌入式数据库(德比)的休眠 java 应用程序。 有趣的是,我的休眠应用程序在启动时打印了 uname,因为我使用的是 slf4j-simple,所以我将我的应用程序设置为使用 log4j。

Hibernate db uname&pass 是在代码中使用属性对象设置的。 我尝试在 log4j 属性配置器上使用相同的技巧,但是 log4j.properties 文件覆盖了我的属性对象。 但是 log4j.properties 文件很容易更改,主要问题是。 是否可以将 log4j 设置为打印我的 db unname&pass,或应用程序中我的 Hibernate 配置中使用的任何敏感数据???

【问题讨论】:

  • 您是想要,还是想要阻止这种行为?
  • 我现在看到,在我的记录器上设置级别会设置文件中的输出。所以问题是我可以在 log4j 文件中设置记录器吗?
  • 我想阻止打印 uname & pass。
  • 如果我想要这个,它将是一个通用的 hibernate-log4j hack >D

标签: java hibernate properties log4j


【解决方案1】:

如果我理解正确...您的休眠应用程序正在调用(直接或间接)记录器函数之一(调试、警告、错误、信息等)并将用户名/密码作为参数传递...

然后,是的,绝对可以将 log4j 配置为打印 uname & pass。而且,是的,您可以“在 log4j 中设置记录器”。

此外,做任何一个都相当容易。您可以修改根记录器以显示整个应用程序(包括库)中的所有记录调用。


最重要的是,如果在代码中以纯文本形式设置了 uname/pass,即使无法访问源 *.java 文件,将其取出也非常简单(log4j 不是唯一的方法)。

【讨论】:

    猜你喜欢
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多