Merge pull request #377 from eddumelendez/gh-375
Fix DirContextAdapter when adding Name attributes
This commit is contained in:
@@ -26,6 +26,7 @@ import javax.naming.NamingEnumeration;
|
||||
import javax.naming.NamingException;
|
||||
import javax.naming.directory.Attribute;
|
||||
import javax.naming.directory.DirContext;
|
||||
import javax.naming.ldap.LdapName;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashSet;
|
||||
@@ -165,6 +166,8 @@ public final class NameAwareAttribute implements Attribute {
|
||||
throw new IllegalArgumentException("This instance has values that are not valid distinguished names; " +
|
||||
"cannot handle Name values", e);
|
||||
}
|
||||
} else if (value instanceof LdapName) {
|
||||
newValuesAsNames.put((LdapName) value, value.toString());
|
||||
} else {
|
||||
throw new IllegalArgumentException("This instance has non-string attribute values; " +
|
||||
"cannot handle Name values");
|
||||
|
||||
@@ -367,6 +367,26 @@ public class DirContextAdapterTest {
|
||||
assertEquals("123", attribute.get());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNewLdapNameWithString() throws NamingException {
|
||||
tested.addAttributeValue("member", LdapUtils.newLdapName("CN=test,DC=root"));
|
||||
tested.addAttributeValue("member2", LdapUtils.newLdapName("CN=test2,DC=root"));
|
||||
|
||||
Attributes attrs = tested.getAttributes();
|
||||
assertEquals(LdapUtils.newLdapName("CN=test,DC=root"), attrs.get("member").get());
|
||||
assertEquals(LdapUtils.newLdapName("CN=test2,DC=root"), attrs.get("member2").get());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNewLdapNameWithLdapName() throws NamingException {
|
||||
tested.addAttributeValue("member", "CN=test,DC=root");
|
||||
tested.addAttributeValue("member2", LdapUtils.newLdapName("CN=test2,DC=root"));
|
||||
|
||||
Attributes attrs = tested.getAttributes();
|
||||
assertEquals("CN=test,DC=root", attrs.get("member").get());
|
||||
assertEquals(LdapUtils.newLdapName("CN=test2,DC=root"), attrs.get("member2").get());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRemoveAttributeValueAttributeDoesntExist() {
|
||||
// Perform test
|
||||
|
||||
Reference in New Issue
Block a user