se guardan los presupuestos publicos

This commit is contained in:
2025-10-05 17:47:42 +02:00
parent 14ca264ae2
commit b2f3ef042e
6 changed files with 122 additions and 74 deletions

View File

@ -1,35 +1,42 @@
// JpaAuditConfig.java
package com.imprimelibros.erp.config;
import java.util.Optional;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.domain.AuditorAware;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import com.imprimelibros.erp.users.User;
import java.util.Optional;
import com.imprimelibros.erp.users.UserDao;
@Configuration
@EnableJpaAuditing(auditorAwareRef = "auditorAware")
public class JpaAuditConfig {
@Bean
public AuditorAware<User> auditorAware() {
public AuditorAware<User> auditorAware(UserDao userDao) {
return () -> {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
if (auth == null || !auth.isAuthenticated()) return Optional.empty();
var auth = SecurityContextHolder.getContext().getAuthentication();
if (auth == null || !auth.isAuthenticated())
return Optional.empty();
Object principal = auth.getPrincipal();
if (principal instanceof User u) return Optional.of(u);
if (principal instanceof User u)
return Optional.of(u);
if (principal instanceof UserDetails ud) {
// Si tu principal es UserDetails y no la entidad User,
// aquí podrías cargar User por username si lo necesitas.
return Optional.empty();
return userDao.findByUserNameIgnoreCase(ud.getUsername());
}
if (principal instanceof String username && !"anonymousUser".equals(username)) {
return userDao.findByUserNameIgnoreCase(username);
}
return Optional.empty();
};
}