Я использовал аннотацию @EnableReactiveMongoAuditing для аудита моего документа.
При создании нового объекта (документа) отображается только дата поля «updateDate» и «creationDate» устанавливаются, когда также должен быть установлен «creationUser».
В моем сервисе я выполняю вставку в mongodb следующим образом
Код: Выделить всё
@Override
public Mono create(ReqDTO reqDTO) {
return ReactiveSecurityContextHolder.getContext().map(ctx -> ctx.getAuthentication().getName())
.doOnError(error -> log.error("Error retrieving user from security context: {}", error.getMessage()))
.flatMap(user -> {
var toSave = mapper.mapToEntity(reqDTO);
return repository.insert(toSave)
.map(savedEntity -> new ResponseDTO();
});
}
Код: Выделить всё
@Component
public class UserAudtiting implements AuditorAware {
@Override
public Optional getCurrentAuditor() {
String uname = SecurityContextHolder.getContext().getAuthentication().getName();
return Optional.of(uname);
}
}
Код: Выделить всё
@Document
@Getter
public class DocumentEntity {
@Id
@NonNull
private String id;
@CreatedDate
private LocalDateTime creationDate;
@CreatedBy
private String creationUser;
@LastModifiedDate
private LocalDateTime updateDate;
@LastModifiedBy
private String updateUser;
@Version
private Integer version;
Подробнее здесь: https://stackoverflow.com/questions/791 ... tedby-user
Мобильная версия