스프링이 을 ContextSource
에 설정하지 않았기 때문에 처음에는 다른 base
이 필요했던 이유가 나타납니다. 당신이 할 때
봄 부팅은
EmbeddedLdapAutoConfiguration
에서 같은
ContextSource
생성, 포함 된 LDAP 서버를 자동 구성 : 당신이 볼 수 있듯이,이 않습니다 어디에서이
source.setBase()
전화
@Bean
@DependsOn("directoryServer")
@ConditionalOnMissingBean
public ContextSource ldapContextSource() {
LdapContextSource source = new LdapContextSource();
if (hasCredentials(this.embeddedProperties.getCredential())) {
source.setUserDn(this.embeddedProperties.getCredential().getUsername());
source.setPassword(this.embeddedProperties.getCredential().getPassword());
}
source.setUrls(this.properties.determineUrls(this.environment));
return source;
}
. 그래서이 문제를 해결하기 위해, 나는 (I가 포함 된 서버에 대한 자격 증명을 사용하지 않기 때문에 나는 자격 증명 부분을 생략 할) @Profile("embedded")
로 구성 파일을 추가하고 수동 나는 base
에게 자신을 설정 어디 ContextSource
을 만들어 :
@Configuration
@Profile("embedded")
@EnableConfigurationProperties({ LdapProperties.class })
public class EmbeddedLdapConfig {
private final Environment environment;
private final LdapProperties properties;
public EmbeddedLdapConfig(final Environment environment, final LdapProperties properties) {
this.environment = environment;
this.properties = properties;
}
@Bean
@DependsOn("directoryServer")
public ContextSource ldapContextSource() {
final LdapContextSource source = new LdapContextSource();
source.setUrls(this.properties.determineUrls(this.environment));
source.setBase(this.properties.getBase());
return source;
}
}
이제 base
속성의 값을 내 @Entry
의 Active Directory 서버와 포함 된 UnboundID 서버에 대해 동일하게 유지하면 제대로 작동합니다.
https://github.com/spring-projects/spring-ldap/issues/444에 공개 된 문제가 있습니다. –
@PavanKumarJorrigala 감사합니다. 질문에 대한 링크가 추가되었습니다.나는 최근에 그것도 발견했다. –