private void checkAuthentication(String rootDn, ActiveDirectoryLdapAuthenticationProvider provider) throws NamingException { DirContext ctx = mock(DirContext.class); when(ctx.getNameInNamespace()).thenReturn(""); DirContextAdapter dca = new DirContextAdapter(); SearchResult sr = new SearchResult("CN=Joe Jannsen,CN=Users", dca, dca.getAttributes()); @SuppressWarnings("deprecation") DistinguishedName searchBaseDn = new DistinguishedName(rootDn); when( ctx.search(eq(searchBaseDn), any(String.class), any(Object[].class), any(SearchControls.class))).thenReturn( new MockNamingEnumeration(sr)).thenReturn(new MockNamingEnumeration(sr)); provider.contextFactory = createContextFactoryReturning(ctx); Authentication result = provider.authenticate(joe); assertThat(result.getAuthorities()).isEmpty(); dca.addAttributeValue("memberOf", "CN=Admin,CN=Users,DC=mydomain,DC=eu"); result = provider.authenticate(joe); assertThat(result.getAuthorities()).hasSize(1); }
/** * {@inheritDoc} */ @Override public void addAttributeValue(String name, Object value) { addAttributeValue(name, value, DONT_ADD_IF_DUPLICATE_EXISTS); }
/** * {@inheritDoc} */ @Override public void addAttributeValue(String name, Object value) { addAttributeValue(name, value, DONT_ADD_IF_DUPLICATE_EXISTS); }
/** * {@inheritDoc} */ @Override public void addAttributeValue(String name, Object value) { addAttributeValue(name, value, DONT_ADD_IF_DUPLICATE_EXISTS); }
/** * {@inheritDoc} */ @Override public void addAttributeValue(String name, Object value) { addAttributeValue(name, value, DONT_ADD_IF_DUPLICATE_EXISTS); }
private void createGroup() { DirContextAdapter ctx = new DirContextAdapter(GROUP_DN); ctx.addAttributeValue("objectclass", "top"); ctx.addAttributeValue("objectclass", "group"); ctx.addAttributeValue("cn", "testgroup"); ctx.addAttributeValue("sAMAccountName", "TESTGROUP"); for (int i = 0; i < 1501; i++) { ctx.addAttributeValue("member", buildUserRefDn("test" + i)); } ldapTemplate.bind(ctx); }
@Test public void testBindGroupOfUniqueNamesWithNameValues() { DirContextAdapter ctx = new DirContextAdapter(LdapUtils.newLdapName("cn=TEST,ou=groups")); ctx.addAttributeValue("cn", "TEST"); ctx.addAttributeValue("objectclass", "top"); ctx.addAttributeValue("objectclass", "groupOfUniqueNames"); ctx.addAttributeValue("uniqueMember", LdapUtils.newLdapName("cn=Some Person,ou=company1,ou=Sweden," + base)); tested.bind(ctx); }
@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(); assertThat(attrs.get("member").get()).isEqualTo("CN=test,DC=root"); assertThat(attrs.get("member2").get()).isEqualTo(LdapUtils.newLdapName("CN=test2,DC=root")); }
@Test public void testAddAttributeValue() throws NamingException { // Perform test tested.addAttributeValue("abc", "123"); Attributes attrs = tested.getAttributes(); Attribute attr = attrs.get("abc"); assertThat((String) attr.get()).isEqualTo("123"); }
@Test public void testAddAttributeValueAttributeWithOtherValueExists() throws NamingException { tested.setAttribute(new BasicAttribute("abc", "321")); // Perform test tested.addAttributeValue("abc", "123"); Attributes attrs = tested.getAttributes(); Attribute attr = attrs.get("abc"); assertThat((String) attr.get(0)).isEqualTo("321"); assertThat((String) attr.get(1)).isEqualTo("123"); }
@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(); assertThat(attrs.get("member").get()).isEqualTo(LdapUtils.newLdapName("CN=test,DC=root")); assertThat(attrs.get("member2").get()).isEqualTo(LdapUtils.newLdapName("CN=test2,DC=root")); }
@Test public void testAddAttributeValueInUpdateMode() throws NamingException { tested.setUpdateMode(true); tested.addAttributeValue("abc", "123"); // Perform test Attributes attrs = tested.getAttributes(); assertThat(attrs.get("abc")).isNull(); ModificationItem[] modificationItems = tested.getModificationItems(); assertThat(modificationItems.length).isEqualTo(1); Attribute attribute = modificationItems[0].getAttribute(); assertThat(attribute.getID()).isEqualTo("abc"); assertThat(attribute.get()).isEqualTo("123"); }
private void createOu() { DirContextAdapter ctx = new DirContextAdapter(OU_DN); ctx.addAttributeValue("objectClass", "top"); ctx.addAttributeValue("objectClass", "organizationalUnit"); ctx.setAttributeValue("ou", "dummy"); ctx.setAttributeValue("description", "dummy description"); ldapTemplate.bind(ctx); }
@Test public void testAddAttributeValueAttributeWithSameValueExists() throws NamingException { tested.setAttribute(new BasicAttribute("abc", "123")); // Perform test tested.addAttributeValue("abc", "123"); Attributes attrs = tested.getAttributes(); Attribute attr = attrs.get("abc"); assertThat(attr.size()).isEqualTo(1); assertThat((String) attr.get(0)).isEqualTo("123"); }
@Test public void testGetModificationItemsOnAddAttributeValueInUpdateModeAttributeWhenSameValueExistsInOrigAttrs() throws NamingException { tested.setAttribute(new BasicAttribute("abc", "123")); tested.setUpdateMode(true); // Perform test tested.addAttributeValue("abc", "123"); Attributes attrs = tested.getAttributes(); assertThat(attrs.get("abc")).isNotNull(); ModificationItem[] modificationItems = tested.getModificationItems(); assertThat(modificationItems.length).isEqualTo(0); }
@Test public void testAddAttributeValueInUpdateModeAttributeWithSameValueExistsInUpdAttrs() throws NamingException { tested.setUpdateMode(true); tested.setAttributeValue("abc", "123"); // Perform test tested.addAttributeValue("abc", "123"); Attributes attrs = tested.getAttributes(); assertThat(attrs.get("abc")).isNull(); ModificationItem[] modificationItems = tested.getModificationItems(); assertThat(modificationItems.length).isEqualTo(1); Attribute attribute = modificationItems[0].getAttribute(); assertThat(attribute.size()).isEqualTo(1); assertThat(attribute.getID()).isEqualTo("abc"); assertThat(attribute.get()).isEqualTo("123"); }
private void createUser(String username) throws UnsupportedEncodingException { DirContextAdapter ctx = new DirContextAdapter(new DistinguishedName(OU_DN).append("cn", username)); ctx.addAttributeValue("objectclass", "top"); ctx.addAttributeValue("objectclass", "person"); ctx.addAttributeValue("objectclass", "organizationalPerson"); ctx.addAttributeValue("objectclass", "user"); ctx.setAttributeValue("givenName", username); ctx.setAttributeValue("userPrincipalName", username + "@example.com"); ctx.setAttributeValue("cn", username); ctx.setAttributeValue("description", "Dummy user"); ctx.setAttributeValue("sAMAccountName", username.toUpperCase() + "." + username.toUpperCase()); ctx.setAttributeValue("userAccountControl", "512"); String newQuotedPassword = "\"" + DEFAULT_PASSWORD + "\""; ctx.setAttributeValue("unicodePwd", newQuotedPassword.getBytes("UTF-16LE")); ldapTemplate.bind(ctx); }
@Test public void testAddDnAttributeNewValue() throws NamingException { BasicAttributes attributes = new BasicAttributes(); attributes.put("uniqueMember", "cn=john doe, ou=company"); DirContextAdapter tested = new DirContextAdapter(attributes, LdapUtils.newLdapName("cn=administrators, ou=groups")); tested.setUpdateMode(true); tested.addAttributeValue("uniqueMember", LdapUtils.newLdapName("cn=jane doe, ou=company")); ModificationItem[] modificationItems = tested.getModificationItems(); assertThat(modificationItems.length).isEqualTo(1); ModificationItem modificationItem = modificationItems[0]; assertThat(modificationItem.getModificationOp()).isEqualTo(DirContext.ADD_ATTRIBUTE); assertThat(modificationItem.getAttribute().getID()).isEqualTo("uniqueMember"); assertThat(modificationItem.getAttribute().get()).isEqualTo("cn=jane doe, ou=company"); }
@Test public void testAddDnAttributeValueIdentical() { BasicAttributes attributes = new BasicAttributes(); attributes.put("uniqueMember", "cn=john doe, ou=company"); DirContextAdapter tested = new DirContextAdapter(attributes, LdapUtils.newLdapName("cn=administrators, ou=groups")); tested.setUpdateMode(true); tested.addAttributeValue("uniqueMember", LdapUtils.newLdapName("cn=john doe, ou=company")); ModificationItem[] modificationItems = tested.getModificationItems(); assertThat(modificationItems.length).isEqualTo(0); }
@Test public void testAddDnAttributeSyntacticallyEqual() { BasicAttributes attributes = new BasicAttributes(); attributes.put("uniqueMember", "cn=john doe,OU=company"); DirContextAdapter tested = new DirContextAdapter(attributes, LdapUtils.newLdapName("cn=administrators, ou=groups")); tested.setUpdateMode(true); tested.addAttributeValue("uniqueMember", LdapUtils.newLdapName("cn=john doe, ou=company")); ModificationItem[] modificationItems = tested.getModificationItems(); assertThat(modificationItems.length).isEqualTo(0); }