我正在处理一个处理身份验证/授权的系统,需要跟踪个人登录的尝试,更改权限/用户,尝试失败等。我们希望能够解析这些信息进入数据库以便以后进一步分析/检索。
在我们当前的实现中,我们使用的是一个使用日志框架记录的自制标准(在这种情况下是Log4j,但这不重要)。 Logging框架是跟踪此信息的正确机制吗?在我看来,它似乎不是;我一直都认为日志记录是对代码进行尸检的一种形式 - 更多的是告诉我在调试时发生了什么等等。这对我来说更像是一种报告机制。这类问题有没有标准?是否有人们使用的标准解决方案/格式?使用日志框架是正确的解决方案,还是有更好的方法来处理这种类型的数据?在查看这些信息并将其呈现给利益相关者时,我可以参考哪些来源?
我应该注意 - 正在记录的数据已根据合规性/安全性标准(无密码等)进行过滤,所有记录都发生在我们的内部环境中。我正在寻找一种方法来管理身份验证和授权系统的更改信息。
答案 0 :(得分:2)
您似乎正在使用log4J进行审核(也可能用于记录诊断或跟踪信息)。回答你的问题:
Logging框架是正确的 机制来跟踪这一点 信息?
直截了当的答案是“不,日志框架不是正确的机制”。有某些属性,如果存在于日志记录框架中,则会使其具有用作审计框架的能力。
下面介绍了其中一些要求,log4j可用于满足其中一些要求。这并非详尽无遗,我建议您查看审计框架(如LAUS)的实现,以获得更全面的列表。
答案 1 :(得分:0)
在这里使用日志框架并不是一件坏事。记录到文件通常比记录到数据库更快。但是,使用Log4j,您可以实现或使用现有的JDBC appender,它会在记录时将所有数据插入到数据库中。为了可靠,您可以为审计日志记录配置文件和数据库appender,以便在日志记录数据库失败时进行备份。
其他替代方案可能是围绕您的安全/业务逻辑的AOP方面,它们会将数据直接插入到日志记录数据库中。
我认为这种数据没有任何共同标准。