Mongo Auditing trabaja selectivamente

He habilitado la auditoría de mongo y la inyección en @CreatedBy y @LastModifiedBy están trabajando selectivamente. Para algún documento, ambos no funcionan.

 @Document class Category { @Id var id: String? = null @field:Indexed(unique = true) @field:NotEmpty var name: String? = null set(value) { field = value?.trim()?.toLowerCase() } @CreatedDate @JsonProperty(access = JsonProperty.Access.READ_ONLY) var createdDate: Date? = null @LastModifiedDate @JsonProperty(access = JsonProperty.Access.READ_ONLY) var lastModifiedDate: Date? = null @CreatedBy @JsonProperty(access = JsonProperty.Access.READ_ONLY) var createdBy: ObjectId? = null @LastModifiedDate @JsonProperty(access = JsonProperty.Access.READ_ONLY) var lastModifiedBy: ObjectId? = null } 

La configuration es:

 @Bean fun auditor(): AuditorAware<ObjectId> = AuditorAwareImpl() companion object { class AuditorAwareImpl : AuditorAware<ObjectId> { override fun getCurrentAuditor(): ObjectId? { val authentication = SecurityContextHolder.getContext().authentication if (authentication == null || !authentication.isAuthenticated) return null val principal = authentication.principal if (principal is UserDetailsProvider) { return ObjectId(principal.user.id) } return null } } } 

Está habilitado con @EnableMongoAuditing . Solo createdBy se almacena. Incluso cuando se modifica el documento, lastModifiedBy no se almacena. Pero al verificar si se invoca AuditorAwareImpl , está funcionando bien.

Para otro documento, ambos de createdBy y lastModifiedBy no se almacenan. Para otro documento, ambos están almacenados. Las marcas de time están todas almacenadas con los mismos metadatos en todos los documentos.

No puedo get el mismo comportamiento para cada uno de estos documentos.