Hello, I’m having the same issue as presented here before, but I’m using Hibernate Envers for Quarkus. Based on previous presented solution, I’ve created the following classes:
@Provider
public class SecurityRequestFilter implements ContainerRequestFilter, ContainerResponseFilter {
private static final ThreadLocal<SecurityContext> THREAD_LOCAL = new ThreadLocal<>();
@RequestScoped
@Produces
public SecurityContext getSecurityContext() {
return THREAD_LOCAL.get();
}
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
throws IOException {
THREAD_LOCAL.remove();
}
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
THREAD_LOCAL.set(requestContext.getSecurityContext());
}
}
public class CustomRevisionListener implements RevisionListener {
@Inject
SecurityContext securityContext;
@Override
public void newRevision(Object revisionEntity) {
CustomRevision customRevision = (CustomRevision) revisionEntity;
customRevision.setUsername(securityContext.getUserPrincipal().getName());
}
}
However, my SecurityContext in CustomRevisionListener is sadly null. Anyone knows how to fix this issue?
Thank you in advance!