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 2008/06/06 23:22:48 UTC
svn commit: r664134 - in /directory/apacheds/branches/bigbang:
core-integ/src/test/java/org/apache/directory/server/core/authn/SimpleAuthenticationIT.java
core/src/main/java/org/apache/directory/server/core/jndi/CoreContextFactory.java
Author: akarasulu
Date: Fri Jun 6 14:22:48 2008
New Revision: 664134
URL: http://svn.apache.org/viewvc?rev=664134&view=rev
Log:
fixed bug with setting principalDn on bind and corrected some tests
Modified:
directory/apacheds/branches/bigbang/core-integ/src/test/java/org/apache/directory/server/core/authn/SimpleAuthenticationIT.java
directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/jndi/CoreContextFactory.java
Modified: directory/apacheds/branches/bigbang/core-integ/src/test/java/org/apache/directory/server/core/authn/SimpleAuthenticationIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core-integ/src/test/java/org/apache/directory/server/core/authn/SimpleAuthenticationIT.java?rev=664134&r1=664133&r2=664134&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core-integ/src/test/java/org/apache/directory/server/core/authn/SimpleAuthenticationIT.java (original)
+++ directory/apacheds/branches/bigbang/core-integ/src/test/java/org/apache/directory/server/core/authn/SimpleAuthenticationIT.java Fri Jun 6 14:22:48 2008
@@ -25,6 +25,8 @@
import org.apache.directory.server.core.jndi.ServerLdapContext;
import static org.apache.directory.server.core.integ.IntegrationUtils.*;
+
+import org.apache.directory.shared.ldap.constants.AuthenticationLevel;
import org.apache.directory.shared.ldap.message.AttributeImpl;
import org.apache.directory.shared.ldap.message.ModificationItemImpl;
import org.apache.directory.shared.ldap.name.LdapDN;
@@ -35,7 +37,6 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -79,7 +80,8 @@
{
LdapDN dn = new LdapDN( bindDn );
dn.normalize( service.getRegistries().getAttributeTypeRegistry().getNormalizerMapping() );
- return null; // TODO service.getJndiContext( new LdapPrincipal( dn, AuthenticationLevel.SIMPLE ) );
+ return new ServerLdapContext( service,
+ service.getSession( new LdapPrincipal( dn, AuthenticationLevel.SIMPLE ) ), new LdapDN() );
}
throw new IllegalStateException( "Cannot acquire rootDSE before the service has been started!" );
@@ -92,7 +94,8 @@
{
LdapDN dn = new LdapDN( "uid=admin,ou=system" );
dn.normalize( service.getRegistries().getAttributeTypeRegistry().getNormalizerMapping() );
- return null; // TODO service.getJndiContext( new LdapPrincipal( dn, AuthenticationLevel.SIMPLE ), "ou=system" );
+ return new ServerLdapContext( service,
+ service.getSession( new LdapPrincipal( dn, AuthenticationLevel.SIMPLE ) ), new LdapDN( "ou=system" ) );
}
throw new IllegalStateException( "Cannot acquire rootDSE before the service has been started!" );
@@ -105,7 +108,8 @@
{
LdapDN dn = new LdapDN( bindDn );
dn.normalize( service.getRegistries().getAttributeTypeRegistry().getNormalizerMapping() );
- return null; // TODO service.getJndiContext( new LdapPrincipal( dn, AuthenticationLevel.SIMPLE ), "ou=system" );
+ return new ServerLdapContext( service,
+ service.getSession( new LdapPrincipal( dn, AuthenticationLevel.SIMPLE ) ), new LdapDN( "ou=system" ) );
}
throw new IllegalStateException( "Cannot acquire rootDSE before the service has been started!" );
@@ -219,12 +223,13 @@
@Test
- @Ignore ( "broken until authentication is fixed" )
public void test11InvalidateCredentialCache() throws Exception
{
apply( getRootDSE(), getUserAddLdif() );
String userDn = "uid=akarasulu,ou=users,ou=system";
- LdapContext ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "test".getBytes(), "simple", userDn );
+
+ LdapContext ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "test".getBytes() ), new LdapDN( userDn ) );
assertNotNull( ctx );
Attributes attrs = ctx.getAttributes( "" );
Attribute ou = attrs.get( "ou" );
@@ -255,20 +260,21 @@
// close and try with old password (should fail)
ctx.close();
- // TODO - fix it
- // try
-// {
-// // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "test".getBytes(), "simple", userDn );
-// fail( "Authentication with old password should fail" );
-// }
-// catch ( NamingException e )
-// {
-// // we should fail
-// }
+ try
+ {
+ new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "test".getBytes() ), new LdapDN( userDn ) );
+ fail( "Authentication with old password should fail" );
+ }
+ catch ( NamingException e )
+ {
+ // we should fail
+ }
// close and try again now with new password (should fail)
ctx.close();
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "newpwd".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "newpwd".getBytes() ), new LdapDN( userDn ) );
attrs = ctx.getAttributes( "" );
ou = attrs.get( "ou" );
assertTrue( ou.contains( "Engineering" ) );
@@ -293,12 +299,12 @@
@Test
- @Ignore ( "broken until authentication is fixed" )
public void testSHA() throws Exception
{
apply( getRootDSE(), getUserAddLdif() );
String userDn = "uid=akarasulu,ou=users,ou=system";
- LdapContext ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "test".getBytes(), "simple", userDn );
+ LdapContext ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "test".getBytes() ), new LdapDN( userDn ) );
// Check that we can get the attributes
Attributes attrs = ctx.getAttributes( "" );
@@ -315,7 +321,8 @@
try
{
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "test".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "test".getBytes() ), new LdapDN( userDn ) );
fail( "Authentication with old password should fail" );
}
catch ( Exception e )
@@ -331,7 +338,8 @@
}
// try again now with new password (should be successfull)
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "secret".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "secret".getBytes() ), new LdapDN( userDn ) );
attrs = ctx.getAttributes( "" );
assertNotNull( attrs );
assertTrue( attrs.get( "uid" ).contains( "akarasulu" ) );
@@ -339,7 +347,8 @@
// close and try again now with new password, to check that the
// cache is updated (should be successfull)
ctx.close();
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "secret".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "secret".getBytes() ), new LdapDN( userDn ) );
attrs = ctx.getAttributes( "" );
assertNotNull( attrs );
assertTrue( attrs.get( "uid" ).contains( "akarasulu" ) );
@@ -347,12 +356,12 @@
@Test
- @Ignore ( "broken until authentication is fixed" )
public void testSSHA() throws Exception
{
apply( getRootDSE(), getUserAddLdif() );
String userDn = "uid=akarasulu,ou=users,ou=system";
- LdapContext ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "test".getBytes(), "simple", userDn );
+ LdapContext ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "test".getBytes() ), new LdapDN( userDn ) );
// Check that we can get the attributes
Attributes attrs = ctx.getAttributes( "" );
@@ -369,7 +378,8 @@
try
{
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "test".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "test".getBytes() ), new LdapDN( userDn ) );
fail( "Authentication with old password should fail" );
}
catch ( Exception e )
@@ -385,14 +395,16 @@
}
// try again now with new password (should be successfull)
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "secret".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "secret".getBytes() ), new LdapDN( userDn ) );
attrs = ctx.getAttributes( "" );
assertNotNull( attrs );
assertTrue( attrs.get( "uid" ).contains( "akarasulu" ) );
// close and try again now with new password, to check that the
// cache is updated (should be successfull)
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "secret".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "secret".getBytes() ), new LdapDN( userDn ) );
attrs = ctx.getAttributes( "" );
assertNotNull( attrs );
assertTrue( attrs.get( "uid" ).contains( "akarasulu" ) );
@@ -400,12 +412,12 @@
@Test
- @Ignore ( "broken until authentication is fixed" )
public void testMD5() throws Exception
{
apply( getRootDSE(), getUserAddLdif() );
String userDn = "uid=akarasulu,ou=users,ou=system";
- LdapContext ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "test".getBytes(), "simple", userDn );
+ LdapContext ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "test".getBytes() ), new LdapDN( userDn ) );
// Check that we can get the attributes
Attributes attrs = ctx.getAttributes( "" );
@@ -422,7 +434,8 @@
try
{
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "test".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "test".getBytes() ), new LdapDN( userDn ) );
fail( "Authentication with old password should fail" );
}
catch ( Exception e )
@@ -438,14 +451,16 @@
}
// try again now with new password (should be successfull)
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "secret".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "secret".getBytes() ), new LdapDN( userDn ) );
attrs = ctx.getAttributes( "" );
assertNotNull( attrs );
assertTrue( attrs.get( "uid" ).contains( "akarasulu" ) );
// try again now with new password, to check that the
// cache is updated (should be successfull)
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "secret".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "secret".getBytes() ), new LdapDN( userDn ) );
attrs = ctx.getAttributes( "" );
assertNotNull( attrs );
assertTrue( attrs.get( "uid" ).contains( "akarasulu" ) );
@@ -453,12 +468,12 @@
@Test
- @Ignore ( "broken until authentication is fixed" )
public void testSMD5() throws Exception
{
apply( getRootDSE(), getUserAddLdif() );
String userDn = "uid=akarasulu,ou=users,ou=system";
- LdapContext ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "test".getBytes(), "simple", userDn );
+ LdapContext ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "test".getBytes() ), new LdapDN( userDn ) );
// Check that we can get the attributes
Attributes attrs = ctx.getAttributes( "" );
@@ -475,7 +490,8 @@
try
{
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "test".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "test".getBytes() ), new LdapDN( userDn ) );
fail( "Authentication with old password should fail" );
}
catch ( Exception e )
@@ -491,14 +507,16 @@
}
// try again now with new password (should be successfull)
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "secret".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "secret".getBytes() ), new LdapDN( userDn ) );
attrs = ctx.getAttributes( "" );
assertNotNull( attrs );
assertTrue( attrs.get( "uid" ).contains( "akarasulu" ) );
// try again now with new password, to check that the
// cache is updated (should be successfull)
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "secret".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "secret".getBytes() ), new LdapDN( userDn ) );
attrs = ctx.getAttributes( "" );
assertNotNull( attrs );
assertTrue( attrs.get( "uid" ).contains( "akarasulu" ) );
@@ -506,12 +524,12 @@
@Test
- @Ignore ( "broken until authentication is fixed" )
public void testCRYPT() throws Exception
{
apply( getRootDSE(), getUserAddLdif() );
String userDn = "uid=akarasulu,ou=users,ou=system";
- LdapContext ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "test".getBytes(), "simple", userDn );
+ LdapContext ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "test".getBytes() ), new LdapDN( userDn ) );
// Check that we can get the attributes
Attributes attrs = ctx.getAttributes( "" );
@@ -528,7 +546,8 @@
try
{
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "test".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "test".getBytes() ), new LdapDN( userDn ) );
fail( "Authentication with old password should fail" );
}
catch ( Exception e )
@@ -544,14 +563,16 @@
}
// try again now with new password (should be successfull)
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "secret".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "secret".getBytes() ), new LdapDN( userDn ) );
attrs = ctx.getAttributes( "" );
assertNotNull( attrs );
assertTrue( attrs.get( "uid" ).contains( "akarasulu" ) );
// try again now with new password, to check that the
// cache is updated (should be successfull)
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "secret".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "secret".getBytes() ), new LdapDN( userDn ) );
attrs = ctx.getAttributes( "" );
assertNotNull( attrs );
assertTrue( attrs.get( "uid" ).contains( "akarasulu" ) );
@@ -559,19 +580,20 @@
@Test
- @Ignore ( "broken until authentication is fixed" )
public void testInvalidateCredentialCacheForUpdatingAnotherUsersPassword() throws Exception
{
apply( getRootDSE(), getUserAddLdif() );
// bind as akarasulu
String userDn = "uid=akarasulu,ou=users,ou=system";
- LdapContext ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "test".getBytes(), "simple", userDn );
+ LdapContext ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "test".getBytes() ), new LdapDN( userDn ) );
ctx.close();
// bind as admin
userDn = "uid=admin,ou=system";
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "secret".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "secret".getBytes() ), new LdapDN( userDn ) );
// now modify the password for akarasulu (while we're admin)
AttributeImpl userPasswordAttribute = new AttributeImpl( "userPassword", "newpwd" );
@@ -581,7 +603,8 @@
try
{
- ctx = null; // TODO service.getJndiContext( new LdapDN( userDn ), userDn, "test".getBytes(), "simple", userDn );
+ ctx = new ServerLdapContext( service,
+ service.getSession( new LdapDN( userDn ), "test".getBytes() ), new LdapDN( userDn ) );
fail( "Authentication with old password should fail" );
}
catch ( Exception e )
Modified: directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/jndi/CoreContextFactory.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/jndi/CoreContextFactory.java?rev=664134&r1=664133&r2=664134&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/jndi/CoreContextFactory.java (original)
+++ directory/apacheds/branches/bigbang/core/src/main/java/org/apache/directory/server/core/jndi/CoreContextFactory.java Fri Jun 6 14:22:48 2008
@@ -46,16 +46,7 @@
public synchronized Context getInitialContext( Hashtable env ) throws NamingException
{
env = ( Hashtable<String, Object> ) env.clone();
- LdapDN principalDn = null;
- if ( env.containsKey( Context.SECURITY_PRINCIPAL ) )
- {
- if ( env.get( Context.SECURITY_PRINCIPAL ) instanceof LdapDN )
- {
- principalDn = ( LdapDN ) env.get( Context.SECURITY_PRINCIPAL );
- }
- }
-
- String principal = getPrincipal( env );
+ LdapDN principalDn = new LdapDN( getPrincipal( env ) );
byte[] credential = getCredential( env );
String authentication = getAuthentication( env );
String providerUrl = getProviderUrl( env );