Ajay Yadav
Initial deployment of da-autocompliance-dev
688925d
raw
history blame
1.32 kB
package com.dalab.autocompliance.config;
import org.springframework.data.domain.AuditorAware;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.User;
import org.springframework.stereotype.Component;
import java.util.Optional;
@Component("auditorProvider")
public class SpringSecurityAuditorAware implements AuditorAware<String> {
@Override
public Optional<String> getCurrentAuditor() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication == null || !authentication.isAuthenticated() || authentication.getPrincipal() instanceof String && "anonymousUser".equals(authentication.getPrincipal())) {
return Optional.of("system"); // Default to system if no user or anonymous
}
Object principal = authentication.getPrincipal();
if (principal instanceof User) {
return Optional.of(((User) principal).getUsername());
} else if (principal instanceof String) {
return Optional.of((String) principal);
}
// For other principal types, you might need custom logic or return a default
return Optional.of("system");
}
}