I가 사용자 인증을하는 동안 예외가 다음 무엇입니까 :이 같은 ApplicationContext의 값을 사용하는 경우봄 LDAP : InvalidNameException :/: [LDAP : 오류 코드 (34)
하기 :
<property name="url" value="ldap://10.10.10.10:389/DC=lab2,DC=ins" />
<property name="base" value="DC=lab2,DC=ins" />
<property name="userDn" value="CN=Ldap Bind,OU=Service Accounts,OU=TECH,DC=lab2,DC=ins" />
예외가 될 것이다 :
Exception in thread "main" org.springframework.ldap.InvalidNameException: /: [LDAP: error code 34 - 0000208F: NameErr: DSID-031001BA, problem 2006 (BAD_NAME), data 8349, best match of:
'DC=lab2,DC=ins/dc=lab2,dc=ins'
다른 경우이 같은 애플리케이션 컨텍스트 :
<property name="url" value="ldap://10.10.10.10:389" />
<property name="base" value="DC=lab2,DC=ins" />
<property name="userDn" value="CN=Ldap Bind,OU=Service Accounts,OU=TECH,DC=lab2,DC=ins" />
,
예외됩니다
Exception in thread "main" org.springframework.ldap.PartialResultException: nested exception is javax.naming.PartialResultException [Root exception is javax.naming.CommunicationException: lab2.ins:389 [Root exception is java.net.UnknownHostException: lab2.ins]]
at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:205)
을 인증 방법
public boolean authenticate(String userName, String password) {
AndFilter filter = new AndFilter();
filter.and(new EqualsFilter("objectclass", "person")).and(
new EqualsFilter("sAMAccountName", userName));
return ldapTemplate.authenticate(DistinguishedName.EMPTY_PATH, filter
.toString(), password);
}
Applicationcontext.xml
<bean id="contextSource"
class="org.springframework.ldap.core.support.LdapContextSource">
<property name="url" value="ldap://10.10.10.10:389" />
<property name="base" value="DC=lab2,DC=ins" />
<property name="userDn" value="CN=Ldap Bind,OU=Service Accounts,OU=TECH,DC=lab2,DC=ins" />
<property name="password" value="secret" />
<property name="baseEnvironmentProperties">
<map>
<entry key="java.naming.referral">
<value>follow</value>
</entry>
</map>
</property>
</bean>
<bean id="ldapTemplate" class="org.springframework.ldap.core.LdapTemplate">
<constructor-arg ref="contextSource" />
</bean>
<bean id="ldapContact"
class="ldap.ContactLDAP ">
<property name="ldapTemplate" ref="ldapTemplate" />
</bean>
의 TestClass :
Resource r = new ClassPathResource("applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(r);
ContactLDAP contact = (ContactLDAP) factory.getBean("ldapContact");
System.out.println(contact.authenticate("username", "secret"));
여기서 무엇을 놓치고 있습니까?
나는 ldap url로 기본을 추가 했으므로 그것이 나오기는하지만 제거한 후에 다른 예외가 생깁니다. –