java 配置弹簧数据jpa的审核员审计功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 配置弹簧数据jpa的审核员审计功能相关的知识,希望对你有一定的参考价值。

import org.springframework.context.annotation.Configuration;
import org.springframework.data.domain.AuditorAware;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;

import java.util.Optional;

@Configuration
public class UserAuditorAware implements AuditorAware<String> {

    @Override
    public Optional<String> getCurrentAuditor() {
        SecurityContext ctx = SecurityContextHolder.getContext();
        if (ctx == null) {
            return Optional.empty();
        }
        if (ctx.getAuthentication() == null) {
            return Optional.empty();
        }
        if (ctx.getAuthentication().getPrincipal() == null) {
            return Optional.empty();
        }
        Object principal = ctx.getAuthentication().getPrincipal();
        if (principal.getClass().isAssignableFrom(User.class)) {
            return Optional.of(((User) principal).getUsername());
        } else {
            return Optional.empty();
        }
    }
}
@Entity
@EntityListeners(AuditingEntityListener.class)
@JsonInclude( JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler" })
public class Model implements Serializable{

	@Id
	@Column(unique = true, nullable = false,columnDefinition = "bigint")
	@GeneratedValue(strategy= GenerationType.IDENTITY)
	private Long id;
	@CreationTimestamp
	@Column(columnDefinition="datetime COMMENT '登录时间'")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private Date createTime;
	@CreatedBy
	@Column(columnDefinition = "varchar(100) COMMENT '创建人'")
	private String createBy;
	@UpdateTimestamp
	@Column(columnDefinition = "datetime COMMENT '修改时间'")
	private Date lastModifiedDate;
	@LastModifiedBy
	@Column(columnDefinition = "varchar(100) COMMENT '修改人'")
	private String lastModifiedBy;
  //.....todo add getter and setter	
}

以上是关于java 配置弹簧数据jpa的审核员审计功能的主要内容,如果未能解决你的问题,请参考以下文章

更新时未在返回的实体上设置标记为可更新 = 假的弹簧数据审核字段

37-SQLServer的审核/审计功能介绍

无法使用弹簧数据 jpa CrudRepository

等保测评2.0:Windows安全审计

金融行业服务器安全审计

简练网软考知识点整理-项目配置管理配置审计