我的项目中有几个类是由Hibernate处理的,有些是由Envers审核的,有些则不是。现在,当我试图保存某个未经审计的实体时,我得到了以下信息:
java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (no such table: audit_etc_etc)
有些人可能认为我的数据库中没有审计表,但是Envers甚至不应该试图寻找这个表,因为实体没有被审计。我的类看起来像这样:
@Entity
class A {
/* some 'normal' attributes here */
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
AuditedEntity e;
List<B> listOfBs;
}
@Entity
class B {
/* more 'normal' attributes here */
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
AuditedEntity e; // and some more references to audited entities
A anA;
List<C> listOfCs;
}
@Entity
class C {
/* more 'normal' attributes here */
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
AuditedEntity e; // and some more references to audited entities
B anB;
}
因此,每个类都包含一个子类列表,其中包含对其父类的引用。这些类都没有用@Audited
-注释标记,但它们引用了一些已审核的实体。然而,每个引用都用@Audited(targetAuditMode=RelationTargetAuditModel.NOT_Audited)
-注释标记。
我在hibernate.cfg.xml文件中也没有发现什么异常,只有连接细节、envers选项、类映射和其他一些hibernate选项。
这里有什么问题,我如何解决保存时出现的问题?
(注意:我目前只对类A和B进行了测试,但我假设尝试保存C的实例会引发相同的异常)
更新:< br >当我尝试保存B实例时,启用< code>show_sql会显示以下信息:
Hibernate: update table_b set all_attributes=? where idB=?
Hibernate: insert into audit_description (timestamp, description) values (?, ?)
Hibernate: insert into audit_table_b (revision_type, attributes, moreAttributes, revision) values (?, ?, ?, ?)
事实证明,@Audited(…)
会导致Envers审计实体,从而尝试写入不存在的审计表。将@NotAudited添加到每个
@Audited(..)
中,为我解决了这个问题,也许您根本不需要这两个注释。
问题在于您放置了< code>@Audited注释来标记非审计关系。您应该将这些注释放在实体< code>E中与< code>A 、< code>B和< code>C的关系上,而不是放在实体< code>A 、< code>B和< code>C中。
换句话说:
@Entity
@Audited
public class E {
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
private A a;
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
private B b;
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
private C c;
}
希望这能有所帮助。
问题是,您将yout属性标记为@Audited,以便envers尝试将它们作为它所属的类和intself类的一部分进行审核。您应该只使用@Audited标记您的类声明以及其中要审核的属性:
@Audited
@Entity
public class AuditedEntity{
...
}
和未审核的类
@Entity
class A {
AuditedEntity e;
...
}
如果您在其他受审核实体中使用已审核实体:
@Entity
@Audited
public class AnotherAuditedEntity {
@Audited
AuditedEntity e;
...
}
一旦Spring Security发挥作用,Spring Boot Actuator就有一个灵活的审计框架,可以发布事件(默认情况下,“身份验证成功”,“失败”和“访问被拒绝”例外)。 此功能对于报告和基于身份验证失败实施锁定策略非常有用。 要自定义已发布的安全事件,您可以提供自己的AbstractAuthenticationAuditListener和AbstractAuthorizationA
日志审计支持查看平台上的所有操作日志以及公有云的操作日志等。 操作日志 操作日志用于显示系统中所有操作信息。 云上日志 将公有云操作日志同步到云联壹云平台上统一查看。
该账号及其子账号的所有操作记录和登录日志,便于在发生问题时用户及时查看。 操作日志 登录历史 操作日志 记录用户及其子用户在页面的所有操作行为,可对操作行为进行追溯,并按照功能模块、操作行为等进行查询。 登录历史 记录用户及其子用户的所有登录行为,包括登录时间、登录IP、用户名、浏览器版本、登录方式等。
有许多选项可用于在审计扫描期间配置Burp Scanner的行为。这些可以在Burp启动扫描时即时配置,或是在 Burp 的配置库中修改其配置。 优化审计 通过这些设置,您可以调整审计的整体逻辑行为,来达到针对目标的一个更好的审计效果。 优化审计可以使用如下配置: 审计速度 - 此选项确定在检查漏洞时某些审计的深度。 快速(Fast)会进行较少的请求,检查某些漏洞时也只是做一个基础审计。 深入(T
不是每个问题都有技术性的答案。我曾经诊断过一台服务器,它对 ping、SSH 或控制台连接均无响应。 我不能确定这到底是硬件故障还是软件故障。 当我电话询问主机所在位置的站点客服时,奥秘最终被揭开了。他们告诉我: 先期抵达的两名不明身份的男子,进入大厦直奔服务器机房,拔下了机器,并轻易地将机器带出了大厦。 后来我们发现,在机房所在的地区(Missouri,M.O.)曾发生过一连串的电脑失窃案。 从
Kubernetes 审计(Audit)提供了安全相关的时序操作记录,支持日志和 webhook 两种格式,并可以通过审计策略自定义事件类型。 审计日志 通过配置 kube-apiserver 的下列参数开启审计日志 audit-log-path:审计日志路径 audit-log-maxage:旧日志最长保留天数 audit-log-maxbackup:旧日志文件最多保留个数 audit-log-