You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2004/11/01 04:34:39 UTC
svn commit: rev 56191 - incubator/directory/eve/trunk/backend/core/src/test/org/apache/eve/jndi
Author: akarasulu
Date: Sun Oct 31 19:34:39 2004
New Revision: 56191
Added:
incubator/directory/eve/trunk/backend/core/src/test/org/apache/eve/jndi/ImportConfirmationTest.java
Modified:
incubator/directory/eve/trunk/backend/core/src/test/org/apache/eve/jndi/SimpleAuthenticationTest.java
Log:
Changes ...
o added tests to confirm authentication works for non-admin users
o added test to confirm the creation of system.ldif file entries
Added: incubator/directory/eve/trunk/backend/core/src/test/org/apache/eve/jndi/ImportConfirmationTest.java
==============================================================================
--- (empty file)
+++ incubator/directory/eve/trunk/backend/core/src/test/org/apache/eve/jndi/ImportConfirmationTest.java Sun Oct 31 19:34:39 2004
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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.apache.eve.jndi;
+
+
+import java.io.InputStream;
+
+import javax.naming.directory.Attributes;
+import javax.naming.directory.Attribute;
+import javax.naming.Name;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+
+import org.apache.ldap.common.ldif.LdifParser;
+import org.apache.ldap.common.ldif.LdifParserImpl;
+import org.apache.ldap.common.ldif.LdifIterator;
+import org.apache.ldap.common.message.LockableAttributesImpl;
+import org.apache.ldap.common.name.LdapName;
+import org.apache.eve.exception.EveConfigurationException;
+
+
+/**
+ * Tests to make sure the system.ldif entries were properly imported into the
+ * system partition.
+ *
+ * @author <a href="mailto:directory-dev@incubator.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class ImportConfirmationTest extends AbstractJndiTest
+{
+ /**
+ * Tests to make sure we can authenticate after the database has already
+ * been build as the admin user when simple authentication is in effect.
+ *
+ * @throws Exception if anything goes wrong
+ */
+ public void testConfirmImportedEntries() throws Exception
+ {
+ InputStream in = ( InputStream ) getClass().getResourceAsStream( "system.ldif" );
+ LdifParser parser = new LdifParserImpl();
+
+ try
+ {
+ LdifIterator iterator = new LdifIterator( in );
+ while ( iterator.hasNext() )
+ {
+ Attributes ldifAttributes = new LockableAttributesImpl();
+ String ldif = ( String ) iterator.next();
+ parser.parse( ldifAttributes, ldif );
+ Name dn = new LdapName( ( String ) ldifAttributes.remove( "dn" ).get() );
+
+ dn.remove( 0 );
+ Attributes entry = sysRoot.getAttributes( dn );
+
+ assertNotNull( entry );
+ NamingEnumeration ids = ldifAttributes.getIDs();
+ while ( ids.hasMore() )
+ {
+ String id = ( String ) ids.next();
+ Attribute entryAttribute = entry.get( id );
+ Attribute ldifAttribute = entry.get( id );
+ assertNotNull( ldifAttribute );
+ assertNotNull( entryAttribute );
+
+ for ( int ii = 0; ii < ldifAttribute.size(); ii++ )
+ {
+ assertTrue( entryAttribute.contains( ldifAttribute.get( ii ) ) );
+ }
+ }
+ }
+ }
+ catch ( Exception e )
+ {
+ String msg = "failed while trying to parse system ldif file";
+ NamingException ne = new EveConfigurationException( msg );
+ ne.setRootCause( e );
+ throw ne;
+ }
+ }
+}
Modified: incubator/directory/eve/trunk/backend/core/src/test/org/apache/eve/jndi/SimpleAuthenticationTest.java
==============================================================================
--- incubator/directory/eve/trunk/backend/core/src/test/org/apache/eve/jndi/SimpleAuthenticationTest.java (original)
+++ incubator/directory/eve/trunk/backend/core/src/test/org/apache/eve/jndi/SimpleAuthenticationTest.java Sun Oct 31 19:34:39 2004
@@ -303,9 +303,8 @@
/**
- * Tests to make sure we throw an error when Context.SECURITY_AUTHENTICATION
- * is set to "none" when trying to get a context from an already
- * bootstrapped system when anonymous users are not turned on.
+ * Tests to make sure we can authenticate after the database has already
+ * been build as the admin user when simple authentication is in effect.
*
* @throws Exception if anything goes wrong
*/
@@ -316,6 +315,26 @@
env.put( Context.PROVIDER_URL, "ou=system" );
env.put( Context.SECURITY_PRINCIPAL, "uid=admin,ou=system" );
env.put( Context.SECURITY_CREDENTIALS, "testing" );
+ env.put( Context.SECURITY_AUTHENTICATION, "simple" );
+ env.put( Context.INITIAL_CONTEXT_FACTORY, "org.apache.eve.jndi.EveContextFactory" );
+ assertNotNull( new InitialContext( env ) );
+ }
+
+
+ /**
+ * Checks to see if we can authenticate as a test user after the admin fires
+ * up and builds the the system database.
+ *
+ * @throws Exception if anything goes wrong
+ */
+ public void test10TestNonAdminUser() throws Exception
+ {
+ // now go in as anonymous user and we should be rejected
+ Hashtable env = new Hashtable();
+ env.put( Context.PROVIDER_URL, "ou=system" );
+ env.put( Context.SECURITY_PRINCIPAL, "uid=akarasulu,ou=users,ou=system" );
+ env.put( Context.SECURITY_CREDENTIALS, "test" );
+ env.put( Context.SECURITY_AUTHENTICATION, "simple" );
env.put( Context.INITIAL_CONTEXT_FACTORY, "org.apache.eve.jndi.EveContextFactory" );
assertNotNull( new InitialContext( env ) );
}