Ten en cuenta que en las ciencias informáticas un problema suele tener más de una soluciones, no obstante nosotros aquí enseñamos la mejor y más óptimo.
Solución:
Ok, creo que este es un error de seguridad de primavera.
Si depuro y observo la clase LdapServerBeanDefinition, hay un método llamado “parse”. Aquí hay un extracto:
public BeanDefinition parse(Element elt, ParserContext parserContext)
String url = elt.getAttribute(ATT_URL);
RootBeanDefinition contextSource;
if (!StringUtils.hasText(url))
contextSource = createEmbeddedServer(elt, parserContext);
else
contextSource = new RootBeanDefinition();
contextSource.setBeanClassName(CONTEXT_SOURCE_CLASS);
contextSource.getConstructorArgumentValues().addIndexedArgumentValue(0, url);
contextSource.setSource(parserContext.extractSource(elt));
String managerDn = elt.getAttribute(ATT_PRINCIPAL);
String managerPassword = elt.getAttribute(ATT_PASSWORD);
if (StringUtils.hasText(managerDn))
if(!StringUtils.hasText(managerPassword))
parserContext.getReaderContext().error("You must specify the " + ATT_PASSWORD +
" if you supply a " + managerDn, elt);
contextSource.getPropertyValues().addPropertyValue("userDn", managerDn);
contextSource.getPropertyValues().addPropertyValue("password", managerPassword);
...
Si depuro aquí, todas las variables (url, managerDn, managerPassword…) no se reemplazan por el valor especificado en el archivo de propiedades. Y así, url tiene el valor $ldap.server.url, managerDn tiene el valor $ldap.server.manager.dn y así sucesivamente.
El método parse crea un bean, una fuente de contexto que se usará más adelante. Y cuando se use este bean, se reemplazarán los marcadores de posición.
Aquí, tenemos el error. El método de análisis verifica si la URL está vacía o no. El problema es que la URL no está vacía aquí porque tiene el valor $ldap.server.url. Entonces, el método parse crea una fuente de contexto como un servidor distante.
Cuando se utilice la fuente creada, reemplazará $ldap.server.url por un valor vacío (como se especifica en el archivo de propiedades). Y……. ¡Bicho!
Realmente no sé cómo resolver esto por el momento, pero ahora entiendo por qué falla;)
valoraciones y comentarios
Si guardas alguna cuestión y disposición de reaccionar nuestro división puedes escribir una referencia y con mucho gusto lo observaremos.