You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2012/01/03 19:07:56 UTC
svn commit: r1226901 - in /directory/apacheds/branches/apacheds-txns:
kerberos-codec/src/main/java/org/apache/directory/server/kerberos/shared/store/
kerberos-test/src/test/java/org/apache/directory/server/kerberos/kdc/
Author: elecharny
Date: Tue Jan 3 18:07:55 2012
New Revision: 1226901
URL: http://svn.apache.org/viewvc?rev=1226901&view=rev
Log:
Fixed the kerberos-tests by removing the txn layer from it, as the txn layer is already in coreSession
Modified:
directory/apacheds/branches/apacheds-txns/kerberos-codec/src/main/java/org/apache/directory/server/kerberos/shared/store/SingleBaseSearch.java
directory/apacheds/branches/apacheds-txns/kerberos-test/src/test/java/org/apache/directory/server/kerberos/kdc/AbstractKerberosITest.java
Modified: directory/apacheds/branches/apacheds-txns/kerberos-codec/src/main/java/org/apache/directory/server/kerberos/shared/store/SingleBaseSearch.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/kerberos-codec/src/main/java/org/apache/directory/server/kerberos/shared/store/SingleBaseSearch.java?rev=1226901&r1=1226900&r2=1226901&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/kerberos-codec/src/main/java/org/apache/directory/server/kerberos/shared/store/SingleBaseSearch.java (original)
+++ directory/apacheds/branches/apacheds-txns/kerberos-codec/src/main/java/org/apache/directory/server/kerberos/shared/store/SingleBaseSearch.java Tue Jan 3 18:07:55 2012
@@ -20,12 +20,10 @@
package org.apache.directory.server.kerberos.shared.store;
-
import javax.security.auth.kerberos.KerberosPrincipal;
import org.apache.directory.server.core.api.CoreSession;
import org.apache.directory.server.core.api.DirectoryService;
-import org.apache.directory.server.core.api.txn.TxnManager;
import org.apache.directory.server.i18n.I18n;
import org.apache.directory.server.kerberos.shared.store.operations.ChangePassword;
import org.apache.directory.server.kerberos.shared.store.operations.GetPrincipal;
@@ -43,14 +41,13 @@ class SingleBaseSearch implements Princi
{
private final CoreSession session;
private final Dn searchBaseDn;
- private TxnManager txnManager;
+
SingleBaseSearch( DirectoryService directoryService, Dn searchBaseDn )
{
try
{
session = directoryService.getAdminSession();
- txnManager = directoryService.getTxnManager();
this.searchBaseDn = searchBaseDn;
}
catch ( Exception e )
@@ -63,33 +60,19 @@ class SingleBaseSearch implements Princi
public PrincipalStoreEntry getPrincipal( KerberosPrincipal principal ) throws Exception
{
-
+
PrincipalStoreEntry entry = null;
-
+
try
{
- txnManager.beginTransaction( true );
-
- try
- {
- entry = ( PrincipalStoreEntry ) new GetPrincipal( principal ).execute( session, searchBaseDn );
- }
- catch ( Exception e )
- {
- txnManager.abortTransaction();
-
- throw e;
- }
-
- txnManager.commitTransaction();
-
+ entry = ( PrincipalStoreEntry ) new GetPrincipal( principal ).execute( session, searchBaseDn );
}
catch ( Exception e )
{
String message = I18n.err( I18n.ERR_625, principal.getRealm() );
throw new ServiceConfigurationException( message, e );
}
-
+
return entry;
}
@@ -97,37 +80,9 @@ class SingleBaseSearch implements Princi
public String changePassword( KerberosPrincipal principal, String newPassword ) throws Exception
{
String result = null;
- boolean done = false;
-
- do
- {
- txnManager.beginTransaction( false );
- try
- {
- result = ( String ) new ChangePassword( principal, newPassword ).execute( session, searchBaseDn );
- }
- catch ( Exception e )
- {
- txnManager.abortTransaction();
-
- throw e;
- }
-
- done = true;
-
- try
- {
- txnManager.commitTransaction();
- }
- catch ( Exception e )
- {
- // TODO check for conflict
- throw e;
- }
- }
- while ( !done );
-
+ result = ( String ) new ChangePassword( principal, newPassword ).execute( session, searchBaseDn );
+
return result;
}
}
Modified: directory/apacheds/branches/apacheds-txns/kerberos-test/src/test/java/org/apache/directory/server/kerberos/kdc/AbstractKerberosITest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-txns/kerberos-test/src/test/java/org/apache/directory/server/kerberos/kdc/AbstractKerberosITest.java?rev=1226901&r1=1226900&r2=1226901&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-txns/kerberos-test/src/test/java/org/apache/directory/server/kerberos/kdc/AbstractKerberosITest.java (original)
+++ directory/apacheds/branches/apacheds-txns/kerberos-test/src/test/java/org/apache/directory/server/kerberos/kdc/AbstractKerberosITest.java Tue Jan 3 18:07:55 2012
@@ -113,18 +113,18 @@ public class AbstractKerberosITest exten
*/
protected void testObtainTickets( ObtainTicketParameters parameters ) throws Exception
{
- setupEnv(parameters);
+ setupEnv( parameters );
try
{
Subject subject = new Subject();
-
+
KerberosTestUtils.obtainTGT( subject, USER_UID, USER_PASSWORD );
-
+
assertEquals( 1, subject.getPrivateCredentials().size() );
assertEquals( 0, subject.getPublicCredentials().size() );
-
+
KerberosTestUtils.obtainServiceTickets( subject, USER_UID, LDAP_SERVICE_NAME, HOSTNAME );
-
+
assertEquals( 2, subject.getPrivateCredentials().size() );
assertEquals( 0, subject.getPublicCredentials().size() );
for ( KerberosTicket kt : subject.getPrivateCredentials( KerberosTicket.class ) )
@@ -158,12 +158,12 @@ public class AbstractKerberosITest exten
// Then set it to -1/1 to force UDP/TCP.
parameters.oldUdpPrefLimit = getUdpPrefLimit();
setUdpPrefLimit( parameters.transport == TcpTransport.class ? 1 : -1 );
-
+
// Save current value of sun.security.krb5.Checksum.CKSUMTYPE_DEFAULT field.
// Then set it to the required checksum value
parameters.oldCksumtypeDefault = getCksumtypeDefault();
setCksumtypeDefault( parameters.checksumType.getValue() );
-
+
// create krb5.conf with proper encryption type
String krb5confPath = createKrb5Conf( parameters.encryptionType );
System.setProperty( "java.security.krb5.conf", krb5confPath );
@@ -182,7 +182,8 @@ public class AbstractKerberosITest exten
createPrincipal( "uid=ldap", "Service", "LDAP Service",
"ldap", "randall", servicePrincipal );
}
-
+
+
protected void resetEnv( ObtainTicketParameters parameters )
throws Exception
{
@@ -190,6 +191,7 @@ public class AbstractKerberosITest exten
setCksumtypeDefault( parameters.oldCksumtypeDefault );
}
+
private static Integer getUdpPrefLimit() throws Exception
{
Field udpPrefLimitField = getUdpPrefLimitField();
@@ -210,10 +212,10 @@ public class AbstractKerberosITest exten
{
String clazz = "sun.security.krb5.KrbKdcReq";
Class<?> krbKdcReqClass = Class.forName( clazz );
-
+
// Absolutely ugly fix to get this method working with the latest JVM on Mac (1.6.0_29)
Field udpPrefLimitField = null;
-
+
try
{
udpPrefLimitField = krbKdcReqClass.getDeclaredField( "udpPrefLimit" );
@@ -222,27 +224,28 @@ public class AbstractKerberosITest exten
{
udpPrefLimitField = krbKdcReqClass.getDeclaredField( "defaultUdpPrefLimit" );
}
-
+
udpPrefLimitField.setAccessible( true );
return udpPrefLimitField;
}
-
+
+
private static Integer getCksumtypeDefault() throws Exception
{
Field cksumtypeDefaultField = getCksumtypeDefaultField();
Object value = cksumtypeDefaultField.get( null );
return ( Integer ) value;
}
-
-
+
+
private static void setCksumtypeDefault( int limit ) throws Exception
{
Field cksumtypeDefaultField = getCksumtypeDefaultField();
cksumtypeDefaultField.setAccessible( true );
cksumtypeDefaultField.set( null, limit );
}
-
-
+
+
private static Field getCksumtypeDefaultField() throws ClassNotFoundException, NoSuchFieldException
{
String clazz = "sun.security.krb5.Checksum";
@@ -252,6 +255,7 @@ public class AbstractKerberosITest exten
return cksumtypeDefaultField;
}
+
/**
* Creates the krb5.conf file for the test.
*
@@ -290,10 +294,10 @@ public class AbstractKerberosITest exten
data += "default_tkt_enctypes = " + encryptionType.getName() + SystemUtils.LINE_SEPARATOR;
data += "default_tgs_enctypes = " + encryptionType.getName() + SystemUtils.LINE_SEPARATOR;
data += "permitted_enctypes = " + encryptionType.getName() + SystemUtils.LINE_SEPARATOR;
-// data += "default_checksum = " + checksumType.getName() + SystemUtils.LINE_SEPARATOR;
-// data += "ap_req_checksum_type = " + checksumType.getName() + SystemUtils.LINE_SEPARATOR;
-// data += "checksum_type = " + checksumType.getName() + SystemUtils.LINE_SEPARATOR;
-
+ // data += "default_checksum = " + checksumType.getName() + SystemUtils.LINE_SEPARATOR;
+ // data += "ap_req_checksum_type = " + checksumType.getName() + SystemUtils.LINE_SEPARATOR;
+ // data += "checksum_type = " + checksumType.getName() + SystemUtils.LINE_SEPARATOR;
+
data += "[realms]" + SystemUtils.LINE_SEPARATOR;
data += REALM + " = {" + SystemUtils.LINE_SEPARATOR;
data += "kdc = " + HOSTNAME + ":" + kdcServer.getTransports()[0].getPort() + SystemUtils.LINE_SEPARATOR;
@@ -318,7 +322,7 @@ public class AbstractKerberosITest exten
entry.add( "cn", cn );
entry.add( "sn", sn );
entry.add( "uid", uid );
- entry.add( "userPassword", userPassword );
+ entry.add( "userPassword", Strings.getBytesUtf8( userPassword ) );
entry.add( "krb5PrincipalName", principalName );
entry.add( "krb5KeyVersionNumber", "0" );
conn.add( entry );