/* * JBoss, Home of Professional Open Source * Copyright 2014 Red Hat, Inc., and individual contributors * as indicated by the @author tags. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.wildfly.security.ldap; import static org.junit.Assert.assertEquals; import org.junit.Test; import org.wildfly.security.auth.realm.ldap.AttributeMapping; /** * @author <a href="mailto:psilva@redhat.com">Pedro Igor</a> */ public class AttributeMappingSuiteChild extends AbstractAttributeMappingSuiteChild { @Test public void testSingleAttributeToSpecifiedName() throws Exception { assertAttributes("userWithAttributes", attributes -> { assertEquals("Expected a single attribute.", 1, attributes.size()); assertAttributeValue(attributes.get("firstName"), "My First Name"); }, AttributeMapping.fromIdentity().from("cn").to("firstName").build()); } @Test public void testSingleAttributeToLdapName() throws Exception { assertAttributes("userWithAttributes", attributes -> { assertEquals("Expected a single attribute.", 1, attributes.size()); assertAttributeValue(attributes.get("CN"), "My First Name"); }, AttributeMapping.fromIdentity().from("cn").build()); } @Test public void testMultipleAttributeMapping() throws Exception { assertAttributes("userWithAttributes", attributes -> { assertEquals("Expected two attributes.", 2, attributes.size()); assertAttributeValue(attributes.get("CN"), "My First Name"); assertAttributeValue(attributes.get("lastName"), "My Last Name"); }, AttributeMapping.fromIdentity().from("cn").build(), AttributeMapping.fromIdentity().from("sn").to("lastName").build()); } @Test public void testAttributeFromDifferentMappings() throws Exception { assertAttributes("userWithAttributes", attributes -> { assertEquals("Expected one attribute.", 1, attributes.size()); assertAttributeValue(attributes.get("CN"), "My First Name", "My Last Name"); }, AttributeMapping.fromIdentity().from("cn").build(), AttributeMapping.fromIdentity().from("sn").to("CN").build()); } @Test public void testAttributeFilterRdn() throws Exception { assertAttributes("userWithRdnAttribute", attributes -> { assertEquals("Expected one attribute.", 1, attributes.size()); assertAttributeValue(attributes.get("businessArea"), "Finance", "cn=Manager,ou=Sales,dc=elytron,dc=wildfly,dc=org"); }, AttributeMapping.fromFilter("(&(objectClass=groupOfNames)(member={1}))").searchDn("ou=Finance,dc=elytron,dc=wildfly,dc=org").extractRdn("OU").to("businessArea").build() , AttributeMapping.fromFilter("(&(objectClass=groupOfNames)(member={1}))").searchDn("ou=Sales,dc=elytron,dc=wildfly,dc=org").to("businessArea").build()); } @Test public void testAttributeFilterAttribute() throws Exception { assertAttributes("userWithRdnAttribute", attributes -> { assertEquals("Expected one attribute.", 1, attributes.size()); assertAttributeValue(attributes.get("roles"), "Manager", "Manager"); assertEquals("Expected two roles.", 2, attributes.get("roles").size()); }, AttributeMapping.fromFilter("(&(objectClass=groupOfNames)(member={1}))").from("cn").searchDn("ou=Finance,dc=elytron,dc=wildfly,dc=org").to("roles").build() , AttributeMapping.fromFilter("(&(objectClass=groupOfNames)(member={1}))").from("cn").searchDn("ou=Sales,dc=elytron,dc=wildfly,dc=org").to("roles").build()); } @Test public void testDnToSpecifiedAttribute() throws Exception { assertAttributes("userWithAttributes", attributes -> { assertEquals("Expected a single attribute.", 1, attributes.size()); assertAttributeValue(attributes.get("myDn"), "uid=userWithAttributes,dc=elytron,dc=wildfly,dc=org"); }, AttributeMapping.fromIdentity().to("myDn").build()); } }