modificados algunos problemas para arreglar el dump de la bbdd y quitados los warn del arranque

This commit is contained in:
2025-09-29 19:17:10 +02:00
parent 656bb5bad2
commit add4e43955
3 changed files with 10 additions and 35 deletions

View File

@ -1,7 +1,5 @@
package com.imprimelibros.erp.config;
import java.util.Locale;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Value;
@ -9,13 +7,10 @@ import org.springframework.boot.autoconfigure.security.servlet.PathRequest;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.http.MediaType;
import org.springframework.security.authentication.AuthenticationProvider;
import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
@ -29,8 +24,10 @@ import org.springframework.security.web.util.matcher.OrRequestMatcher;
import org.springframework.security.web.util.matcher.RequestHeaderRequestMatcher;
import org.springframework.security.web.util.matcher.RequestMatcher;
import com.imprimelibros.erp.users.User;
import com.imprimelibros.erp.users.UserDao;
import com.imprimelibros.erp.users.UserDetailsImpl;
import com.imprimelibros.erp.users.UserServiceImpl;
import jakarta.servlet.http.HttpServletRequest;
@ -45,19 +42,6 @@ public class SecurityConfig {
// ========== Beans base ==========
@Bean
public UserDetailsService userDetailsService(UserDao repo, MessageSource messages) {
return username -> repo
.findByUserNameIgnoreCaseAndEnabledTrueAndDeletedFalse(username) // <-- @EntityGraph aplicado
.map(UserDetailsImpl::new) // dentro del ctor precalculamos authorities
.orElseThrow(() -> {
var locale = org.springframework.context.i18n.LocaleContextHolder.getLocale();
String msg = messages.getMessage("usuarios.error.no-activo", null,
"Usuario no activo o no existe", locale);
return new org.springframework.security.core.userdetails.UsernameNotFoundException(msg);
});
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
@ -73,18 +57,6 @@ public class SecurityConfig {
return repo;
}
// Provider que soporta UsernamePasswordAuthenticationToken
@Bean
public AuthenticationProvider daoAuthenticationProvider(
UserDetailsService userDetailsService,
PasswordEncoder passwordEncoder) {
// ✅ constructor recomendado (sin deprecations)
DaoAuthenticationProvider provider = new DaoAuthenticationProvider(userDetailsService);
provider.setPasswordEncoder(passwordEncoder); // este setter NO está deprecado
return provider;
}
// Provider que soporta UsernamePasswordAuthenticationToken
private static RequestMatcher pathStartsWith(String... prefixes) {
return new RequestMatcher() {
@ -108,10 +80,13 @@ public class SecurityConfig {
@Value("${security.rememberme.key}") String keyRememberMe,
UserDetailsService userDetailsService,
PersistentTokenRepository tokenRepo,
AuthenticationProvider daoAuthenticationProvider) throws Exception {
PasswordEncoder passwordEncoder, UserServiceImpl userServiceImpl) throws Exception {
DaoAuthenticationProvider provider = new DaoAuthenticationProvider(userServiceImpl);
provider.setPasswordEncoder(passwordEncoder);
http.authenticationProvider(provider);
http
.authenticationProvider(daoAuthenticationProvider)
.authenticationProvider(provider)
.sessionManagement(session -> session
.invalidSessionUrl("/login?expired")