usar poner imagen ejemplos componentes como cargar caracteristicas java spring spring-security jhipster codeship

java - poner - No se puede aplicar DaoAuthenticationConfigurer al objeto ya construido



jtextarea ejemplos (1)

Me sale esta excepción:

[WARN] org.springframework.web.context.support.GenericWebApplicationContext - Exception encountered during context initialization - cancelling refresh attempt org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''accountResource'': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private io.ilopezluna.japanathome.service.UserService io.ilopezluna.japanathome.web.rest.AccountResource.userService; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''userService'': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.security.crypto.password.PasswordEncoder io.ilopezluna.japanathome.service.UserService.passwordEncoder; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''securityConfiguration'': Injection of autowired dependencies failed; nested exception is java.lang.IllegalStateException: Cannot apply org.springframework.security.config.annotation.authentication.configurers.userdetails.DaoAuthenticationConfigurer@54aa5730 to already built object at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:293) ~[spring-beans-4.0.7.RELEASE.jar:4.0.7.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1186) ~[spring-beans-4.0.7.RELEASE.jar:4.0.7.RELEASE]

Puedes ver más en https://travis-ci.org/ilopezluna/japan-at-home/builds/37866955

Esta excepción se produce durante la ejecución de las pruebas. Pero no puedo reproducirlo en mi servidor local, siempre obtengo un éxito de construcción: S


Me tomó dos días, pero creo que finalmente he resuelto esto. En mi clase SecurityConfiguration , tenía el siguiente método:

@Configuration @EnableWebMvcSecurity @EnableGlobalMethodSecurity(jsr250Enabled=true, prePostEnabled=true) public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(authenticationService); } }

Reemplacé el método configureGlobal con un método de configure :

@Override public void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(authenticationService); }

Y ahora todo funciona bien.

De acuerdo con esta respuesta, la diferencia es que el uso de configureGlobal permitirá AuthenticationManager por seguridad de método global u otro HttpSecurity (WebSecurityConfigurerAdapter).

Como puede ver arriba, estoy habilitando tanto la seguridad de Web Mvc como la seguridad de los métodos globales. De acuerdo con mis pruebas unitarias, ambos continúan trabajando con este cambio, pero hay algo de debate aquí en mi oficina sobre si este cambio es correcto (es decir, si se está configurando la seguridad del método global correctamente), o si hay otro problema con esto solución.

Creemos que la causa raíz del problema es algún tipo de error de Spring, posiblemente una condición de carrera. Por improbable que parezca, el problema solo se manifestó cuando agregamos una clase vacía al proyecto, no importaba cuál era el paquete o el nombre de la clase.