gpt4 book ai didi

java - 如何在 Spring Data(和 Spring Data Rest)中通过 Java Config 配置审计?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:58:34 24 4
gpt4 key购买 nike

我正在尝试使用 Spring Data 的审计功能(与 Spring Boot 和 Spring Data Rest 结合使用),但在保存时未设置审计字段。尝试保存空“创建者”时,所有保存都会导致约束异常。

根据spring data docs ,我应该能够在我的实体上放置适当的审计注释(@CreatedDate/等),并使 AuditorAware<> 可用于应用程序上下文。我知道我的审计员​​感知 bean 是通过在调试器中设置断点创建的。

我的问题是:

1) 我是否有必要创建一个 AuditingEntityListener,或者我是否应该期望通过 @EnableJpaAuditing 提供一个? (关于java配置的文档中并不清楚)

2) 下面的代码中是否有我缺少的其他配置来设置自动审核?

3) 我正在将创建代码从 POST 调用到 Spring Data Rest,将此审计功能与 Spring Data Rest 结合使用是否有任何特殊注意事项?

@Entity
public class Tag implements Serializable {

// ... other fields omitted...

@CreatedDate
@Temporal(TemporalType.TIMESTAMP)
private Date created = new Date();

@CreatedBy
@Basic(optional = false)
@Column(name = "CREATED_BY", nullable = false, length = 24)
private String createdBy = "";

@LastModifiedDate
@Basic(optional = false)
@Column(nullable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date updated = new Date();

@LastModifiedBy
@Basic(optional = false)
@Column(name = "UPDATED_BY", nullable = false, length = 24)
private String updatedBy = "";

// ... getters and setters were generated ...

和配置:

@EnableJpaAuditing
@Configuration
public class AuditingConfig {

@Bean
public AuditorAware<String> createAuditorProvider() {
return new SecurityAuditor();
}

@Bean
public AuditingEntityListener createAuditingListener() {
return new AuditingEntityListener();
}

public static class SecurityAuditor implements AuditorAware<String> {
@Override
public String getCurrentAuditor() {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
String username = auth.getName();
return username;
}
}

}

非常感谢任何帮助,谢谢!

最佳答案

1) 我是否有必要创建一个 AuditingEntityListener,或者我是否应该期望通过 @EnableJpaAuditing 提供一个? (关于java配置的文档中并不清楚)

回答:不,您不需要定义AuditingEntityListener bean。相反,您需要在域类上指定 @EntityListeners(AuditingEntityListener.class)

例如

@Entity
@EntityListeners(AuditingEntityListener.class)
public class Tag implements Serializable {

}

2) 下面的代码中是否有我缺少的其他配置来设置自动审核?

回答:其他配置设置看起来没问题。

3) 我正在将创建代码从 POST 调用到 Spring Data Rest,将此审计功能与 Spring Data Rest 结合使用是否有任何特殊注意事项?

回答:我认为不是。尝试进行上述建议的更改。它应该可以正常工作。

关于java - 如何在 Spring Data(和 Spring Data Rest)中通过 Java Config 配置审计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29880911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com