当用户登录或输入了错误的密码时,Jhispter应用程序会生成Audit事件。我想使用相同的系统来生成事件,当用户更改密码时,或当管理员用户更改来自其他用户的数据时。我应该如何调用审计系统?我目前的想法是在changePassword-rest-api-call中调用一个方法,并在此方法中执行与CustomAuditEventRepositoryIntTest.addAuditEvent中类似的操作
Map<String, Object> data = new HashMap<>();
data.put("password-strength", "weak");
AuditEvent event = new AuditEvent(
loginUsername,
"PASSWORD_CHANGE",
data);
customAuditEventRepository.add(event);是否需要更改CustomAuditEventRepository或创建自己的版本?或者我只需要使用PersistenceAuditEventRepository?有没有特殊的魔术配置让审计被自动调用,或者我只是在rest-api-method中调用它?
发布于 2018-06-11 21:47:55
我按照Gaël Marziou的建议解决了它:我发布了一个事件,框架负责将其存储到存储库中(或者做一些其他的事情,这取决于侦听器的配置)。
在我的用户服务中,我添加了以下内容:
...
private ApplicationEventPublisher applicationEventPublisher;
...
private void auditPasswordChange( User user ) {
applicationEventPublisher.publishEvent(
new AuditApplicationEvent(
user.getLogin(), AUDIT_PASSWORD_CHANGE, "message=Changed by own user")
);
}
...
public void changePassword(String password) {
...
auditPasswordChange(user);
}https://stackoverflow.com/questions/50509886
复制相似问题