You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by er...@apache.org on 2007/07/19 01:54:46 UTC
svn commit: r557428 - in
/directory/apacheds/trunk/protocol-kerberos/src/test/java/org/apache/directory/server/kerberos/protocol:
KerberosProtocolHandlerTest.java MapPrincipalStoreImpl.java
Author: erodriguez
Date: Wed Jul 18 16:54:45 2007
New Revision: 557428
URL: http://svn.apache.org/viewvc?view=rev&rev=557428
Log:
Changes to protocol-kerberos test cases:
o Added TGS service principal to store.
o Add 2 endTime tests.
Modified:
directory/apacheds/trunk/protocol-kerberos/src/test/java/org/apache/directory/server/kerberos/protocol/KerberosProtocolHandlerTest.java
directory/apacheds/trunk/protocol-kerberos/src/test/java/org/apache/directory/server/kerberos/protocol/MapPrincipalStoreImpl.java
Modified: directory/apacheds/trunk/protocol-kerberos/src/test/java/org/apache/directory/server/kerberos/protocol/KerberosProtocolHandlerTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/protocol-kerberos/src/test/java/org/apache/directory/server/kerberos/protocol/KerberosProtocolHandlerTest.java?view=diff&rev=557428&r1=557427&r2=557428
==============================================================================
--- directory/apacheds/trunk/protocol-kerberos/src/test/java/org/apache/directory/server/kerberos/protocol/KerberosProtocolHandlerTest.java (original)
+++ directory/apacheds/trunk/protocol-kerberos/src/test/java/org/apache/directory/server/kerberos/protocol/KerberosProtocolHandlerTest.java Wed Jul 18 16:54:45 2007
@@ -31,12 +31,14 @@
import org.apache.directory.server.kerberos.shared.crypto.encryption.CipherTextHandler;
import org.apache.directory.server.kerberos.shared.crypto.encryption.KeyUsage;
import org.apache.directory.server.kerberos.shared.io.encoder.EncryptedDataEncoder;
+import org.apache.directory.server.kerberos.shared.messages.AuthenticationReply;
import org.apache.directory.server.kerberos.shared.messages.ErrorMessage;
import org.apache.directory.server.kerberos.shared.messages.KdcRequest;
import org.apache.directory.server.kerberos.shared.messages.MessageType;
import org.apache.directory.server.kerberos.shared.messages.value.EncryptedData;
import org.apache.directory.server.kerberos.shared.messages.value.EncryptedTimeStamp;
import org.apache.directory.server.kerberos.shared.messages.value.EncryptionKey;
+import org.apache.directory.server.kerberos.shared.messages.value.KdcOptions;
import org.apache.directory.server.kerberos.shared.messages.value.KerberosTime;
import org.apache.directory.server.kerberos.shared.messages.value.PreAuthenticationData;
import org.apache.directory.server.kerberos.shared.messages.value.PreAuthenticationDataModifier;
@@ -234,6 +236,68 @@
ErrorMessage error = ( ErrorMessage ) session.getMessage();
assertEquals( "The client or server has a null key", 9, error.getErrorCode() );
+ }
+
+
+ public void testSpecificEndTime() throws Exception
+ {
+ RequestBodyModifier modifier = new RequestBodyModifier();
+ modifier.setClientName( getPrincipalName( "hnelson" ) );
+ modifier.setServerName( getPrincipalName( "krbtgt/EXAMPLE.COM@EXAMPLE.COM" ) );
+ modifier.setRealm( "EXAMPLE.COM" );
+ modifier.setEType( config.getEncryptionTypes() );
+
+ modifier.setKdcOptions( new KdcOptions() );
+
+ long now = System.currentTimeMillis();
+
+ KerberosTime requestedEndTime = new KerberosTime( now + KerberosTime.DAY );
+ modifier.setTill( requestedEndTime );
+
+ KerberosPrincipal clientPrincipal = new KerberosPrincipal( "hnelson@EXAMPLE.COM" );
+
+ String passPhrase = "secret";
+ PreAuthenticationData[] paData = getPreAuthenticationData( clientPrincipal, passPhrase );
+
+ KdcRequest message = new KdcRequest( 5, MessageType.KRB_AS_REQ, paData, modifier.getRequestBody() );
+
+ handler.messageReceived( session, message );
+
+ AuthenticationReply reply = ( AuthenticationReply ) session.getMessage();
+
+ assertTrue( "Requested end time", requestedEndTime.equals( reply.getEndTime() ) );
+ }
+
+
+ public void testEndTimeExceedsMaximumAllowable() throws Exception
+ {
+ RequestBodyModifier modifier = new RequestBodyModifier();
+ modifier.setClientName( getPrincipalName( "hnelson" ) );
+ modifier.setServerName( getPrincipalName( "krbtgt/EXAMPLE.COM@EXAMPLE.COM" ) );
+ modifier.setRealm( "EXAMPLE.COM" );
+ modifier.setEType( config.getEncryptionTypes() );
+
+ modifier.setKdcOptions( new KdcOptions() );
+
+ long now = System.currentTimeMillis();
+
+ KerberosTime requestedEndTime = new KerberosTime( now + KerberosTime.WEEK );
+ modifier.setTill( requestedEndTime );
+
+ KerberosPrincipal clientPrincipal = new KerberosPrincipal( "hnelson@EXAMPLE.COM" );
+
+ String passPhrase = "secret";
+ PreAuthenticationData[] paData = getPreAuthenticationData( clientPrincipal, passPhrase );
+
+ KdcRequest message = new KdcRequest( 5, MessageType.KRB_AS_REQ, paData, modifier.getRequestBody() );
+
+ handler.messageReceived( session, message );
+
+ AuthenticationReply reply = ( AuthenticationReply ) session.getMessage();
+
+ KerberosTime expectedEndTime = new KerberosTime( now + KerberosTime.DAY );
+ boolean isClose = Math.abs( reply.getEndTime().getTime() - expectedEndTime.getTime() ) < 5000;
+ assertTrue( "Expected end time", isClose );
}
Modified: directory/apacheds/trunk/protocol-kerberos/src/test/java/org/apache/directory/server/kerberos/protocol/MapPrincipalStoreImpl.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/protocol-kerberos/src/test/java/org/apache/directory/server/kerberos/protocol/MapPrincipalStoreImpl.java?view=diff&rev=557428&r1=557427&r2=557428
==============================================================================
--- directory/apacheds/trunk/protocol-kerberos/src/test/java/org/apache/directory/server/kerberos/protocol/MapPrincipalStoreImpl.java (original)
+++ directory/apacheds/trunk/protocol-kerberos/src/test/java/org/apache/directory/server/kerberos/protocol/MapPrincipalStoreImpl.java Wed Jul 18 16:54:45 2007
@@ -50,14 +50,18 @@
String passPhrase = "secret";
PrincipalStoreEntry entry = getEntry( principalName, passPhrase );
-
store.put( entry.getPrincipal(), entry );
principalName = "tquist@EXAMPLE.COM";
passPhrase = "secret";
entry = getNullKeyEntry( principalName );
+ store.put( entry.getPrincipal(), entry );
+
+ principalName = "krbtgt/EXAMPLE.COM@EXAMPLE.COM";
+ passPhrase = "randomKey";
+ entry = getEntry( principalName, passPhrase );
store.put( entry.getPrincipal(), entry );
}