是否可以在 Bean 级别控制 cayenne 日志记录 - 以停止记录密码
Posted
技术标签:
【中文标题】是否可以在 Bean 级别控制 cayenne 日志记录 - 以停止记录密码【英文标题】:Is it possible to control cayenne logging at a Bean level - in order to stop logging passwords 【发布时间】:2019-04-04 20:22:59 【问题描述】:在 DEBUG 模式下使用 Java 应用程序运行 Cayenne 时,cayenne 操作是可见的 - 密码 可以在日志中看到,当密码被更改。
无法找到有关在 bean 或类级别控制日志记录的信息。 日志看起来像 !MESSAGE [batch bind: 1->USERPWD:'1923a3d170120bb7709ef2f733c0cd...', 2->SECURID:19]
最好停止记录所有与密码相关的更改
【问题讨论】:
【参考方案1】:您的密码已经过哈希处理(这很棒),并且哈希值已被修整,因此您不会暴露太多信息。但是如果你想格外小心,你可以安装自己的JdbcEventLogger
:
ServerRuntime rt = ServerRuntime.builder()
.addModule(b -> b.bind(JdbcEventLogger.class).to(MyJdbcEventLogger.class)
....
在 Cayenne 4.1 中,MyJdbcEventLogger
可以继承 Slf4jJdbcEventLogger
,覆盖其 appendParameters
以检查看起来像密码的参数。在 4.0 中,appendParameters
是一个私有方法,因此您可能必须在代码中复制/粘贴整个 Slf4jJdbcEventLogger
并在那里进行更改。
【讨论】:
以上是关于是否可以在 Bean 级别控制 cayenne 日志记录 - 以停止记录密码的主要内容,如果未能解决你的问题,请参考以下文章
Apache Cayenne“类未与 Cayenne 映射”
我可以将 Cayenne 配置为使用提供程序来获取模型的新实例吗?