/* * * Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * * WSO2 Inc. licenses this file to you 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.wso2.carbon.directory.configuration; import junit.framework.TestCase; import org.wso2.carbon.apacheds.KdcConfiguration; import org.wso2.carbon.apacheds.LDAPConfiguration; import org.wso2.carbon.apacheds.PartitionInfo; import org.wso2.carbon.ldap.server.configuration.LDAPConfigurationBuilder; import org.wso2.carbon.ldap.server.exception.DirectoryServerException; import org.wso2.carbon.ldap.server.util.EmbeddingLDAPException; import javax.xml.stream.XMLStreamException; import java.io.File; import java.io.FileNotFoundException; public class TestLDAPConfigurationBuilder extends TestCase { private LDAPConfigurationBuilder configurationBuilder; private static final String configurationFile = "src/test/resources/ldap-config.xml"; public void setUp () throws DirectoryServerException, FileNotFoundException { File f = new File("."); System.out.println(f.getAbsolutePath()); File file = new File(configurationFile); assertTrue(file.exists()); this.configurationBuilder = new LDAPConfigurationBuilder(file); this.configurationBuilder.setUserMgtXMLFilePath("src" + File.separator + "test" + File.separator + "resources" + File.separator); } public void testBuildLDAPConfigurations() throws XMLStreamException, DirectoryServerException, EmbeddingLDAPException { assertEquals(this.configurationBuilder.getConnectionPassword(), "tweety"); LDAPConfiguration configurations = this.configurationBuilder.getLdapConfiguration(); assertEquals(configurations.getInstanceId(), "id1"); assertEquals(configurations.getLdapPort(), 10389); //Should get the default value assertEquals(configurations.getSaslHostName(), "ldap.wso2.com"); assertEquals(configurations.getSaslPrincipalName(), "ldap/localhost@WSO2.COM"); assertEquals(configurations.getMaxPDUSize(), 5000000); assertEquals(configurations.getWorkingDirectory(), "/home/tweety"); assertEquals(configurations.isAccessControlOn(), false); assertEquals(configurations.isAllowAnonymousAccess(), true); assertEquals(configurations.isDeNormalizedAttributesEnabled(), true); } public void testBuildPartitionConfigurations () throws DirectoryServerException, EmbeddingLDAPException { PartitionInfo info = this.configurationBuilder.getPartitionConfigurations(); assertEquals(info.getPartitionId(), "tenant0"); assertEquals(info.getRealm(), "WSO2.ORG"); assertEquals(info.isKdcEnabled(), true); assertEquals(info.getPartitionKdcPassword(), "sunday"); assertEquals(info.getLdapServerPrinciplePassword(), "wendesday"); //assertEquals(info.getAdminDomainName(), "uid=myadmin,ou=Users,dc=wso2,dc=org"); assertEquals(info.getPreferredDomainComponent(), "wso2"); assertEquals(info.getRootDN(), "dc=wso2,dc=org"); /*Commenting out the following part because we moved creating user admin entry and group *entry to user core and not reading following config in ldap component anymore.*/ /*AdminInfo admin = info.getPartitionAdministrator(); assertNotNull(admin); //assertEquals(admin.getAdminUID(), "myadmin"); assertEquals(admin.getAdminCommonName(), "me"); assertEquals(admin.getAdminLastName(), "admin"); assertEquals(admin.getAdminEmail(), "admin@example.com"); assertEquals(admin.getAdminPassword(), "admin"); assertEquals(admin.getPasswordAlgorithm(), PasswordAlgorithm.SHA); AdminGroupInfo groupInfo = admin.getGroupInformation(); //assertEquals(groupInfo.getAdminRoleName(), "super"); assertEquals(groupInfo.getGroupNameAttribute(), "cn"); assertEquals(groupInfo.getMemberNameAttribute(), "member");*/ } public void testBuildKDCConfigurations () throws DirectoryServerException, EmbeddingLDAPException { KdcConfiguration kdcConfigs = this.configurationBuilder.getKdcConfigurations(); assertTrue(this.configurationBuilder.isKdcEnabled()); assertEquals(kdcConfigs.getKdcCommunicationProtocol(), KdcConfiguration.ProtocolType.TCP_PROTOCOL); assertEquals(kdcConfigs.getKdcHostAddress(), "ldap.wso2.com"); assertEquals(kdcConfigs.getKdcCommunicationPort(), 8000); // should get the default value assertEquals(kdcConfigs.getMaxTicketLifeTime(), 8640000); assertEquals(kdcConfigs.getMaxRenewableLifeTime(), 604800000); assertFalse(kdcConfigs.isPreAuthenticateTimeStampRequired()); } }