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 2007/10/29 19:15:07 UTC
svn commit: r589780 [1/2] - in
/directory/apacheds/branches/bigbang/kerberos-shared/src:
main/java/org/apache/directory/server/kerberos/shared/
main/java/org/apache/directory/server/kerberos/shared/io/decoder/
main/java/org/apache/directory/server/kerb...
Author: elecharny
Date: Mon Oct 29 11:14:59 2007
New Revision: 589780
URL: http://svn.apache.org/viewvc?rev=589780&view=rev
Log:
o Refactored the Ticket structure
o Added a KerberosConstant class for common constants like kerberos version
o Removed the MessageType class and replaced it with a KerberosMessageType enum
o Removed the TicketModifier class
o Added a package Flags and all the Flags (kerberos, ticket)
o Added an InvalidTicketException
o Modified the PrincipalName to returns a KerberosPrincipal
o Added some test for Ticket
o Fixed some warnings and added some doco
Added:
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/KerberosConstants.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/KerberosMessageType.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/InvalidTicketException.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/AbstractKerberosFlags.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/KerberosFlag.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/KerberosFlags.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/TicketFlag.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/TicketFlags.java
directory/apacheds/branches/bigbang/kerberos-shared/src/test/java/org/apache/directory/server/kerberos/shared/messages/components/
directory/apacheds/branches/bigbang/kerberos-shared/src/test/java/org/apache/directory/server/kerberos/shared/messages/components/TicketTest.java
Removed:
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/MessageType.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/TicketModifier.java
Modified:
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/KerberosUtils.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/ApplicationRequestDecoder.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/ErrorMessageDecoder.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/KdcReplyDecoder.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/KdcRequestDecoder.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/LastRequestDecoder.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/PrivateMessageDecoder.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/TicketDecoder.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/encoder/TicketEncoder.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/ApplicationRequest.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/AuthenticationReply.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/ErrorMessage.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/KdcReply.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/KdcRequest.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/KerberosMessage.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/TicketGrantReply.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/ApplicationReply.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/CredentialMessage.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/PrivateMessage.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/SafeMessage.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/EncApRepPart.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/EncKrbPrivPart.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/Ticket.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalName.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/service/VerifyAuthHeader.java
directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/TicketFactory.java
Added: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/KerberosConstants.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/KerberosConstants.java?rev=589780&view=auto
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/KerberosConstants.java (added)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/KerberosConstants.java Mon Oct 29 11:14:59 2007
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF 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.apache.directory.server.kerberos.shared;
+
+/**
+ * An cass to define Kerberos constants
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class KerberosConstants
+{
+ /** The Kerbersion version 5 */
+ public static final int KERBEROS_V5 = 5;
+}
Added: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/KerberosMessageType.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/KerberosMessageType.java?rev=589780&view=auto
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/KerberosMessageType.java (added)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/KerberosMessageType.java Mon Oct 29 11:14:59 2007
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF 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.apache.directory.server.kerberos.shared;
+
+/**
+ * An enum listing all the Kerberos V5 messages :
+ *
+ * AS-REQ (10) : Authentication Serveur Request
+ * AS-REP (11) : Authentication Serveur Response
+ * TGS-REQ (12) : Ticket Granting Server Request
+ * TGS-REP (13) : Ticket Granting Server Response
+ * AP-REQ (14) : Application Request
+ * AP-REP (15) : Application Response
+ * KRB-SAFE (20) : Safe (checksummed) application message
+ * KRB-PRIV (21) : Private (encrypted) application message
+ * KRB-CRED (22) : Private (encrypted) message to forward credentials
+ * ENC_AP_REP_PART (27) : Encrypted application reply part
+ * ENC_PRIV_PART (28) : Encrypted private message part
+ * KRB-ERROR (30) : A kerberos error response
+ *
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public enum KerberosMessageType
+{
+ AS_REQ( 10, "initial authentication request" ),
+ AS_REP( 11, "initial authentication response"),
+ TGS_REQ( 12, "request for authentication based on TGT" ),
+ TGS_REP( 13, "response to authentication based on TGT" ),
+ AP_REQ( 14, "application request" ),
+ AP_REP( 15, "application response" ),
+ KRB_SAFE( 20, "safe (checksummed) application message" ),
+ KRB_PRIV( 21, "private (encrypted) application message" ),
+ KRB_CRED( 22, "private (encrypted) message to forward credentials" ),
+ ENC_AP_REP_PART( 27, "encrypted application reply part" ),
+ ENC_PRIV_PART( 28, "encrypted private message part" ),
+ KRB_ERROR( 30, "error response" );
+
+ private int value;
+ private String message;
+
+ /**
+ * Creates a new instance of KerberosMessageType.
+ */
+ private KerberosMessageType( int value, String message )
+ {
+ this.value = value;
+ this.message = message;
+ }
+
+
+ /**
+ * Get the int value for this element
+ *
+ * @return The int value of this element
+ */
+ public int getOrdinal()
+ {
+ return value;
+ }
+
+
+ /**
+ * Get the message associated with this element
+ *
+ * @return The message associated with this element
+ */
+ public String getMessage()
+ {
+ return message;
+ }
+
+
+ /**
+ * Get the instance of a KerberosMessageType from an int value
+ *
+ * @param value The int value
+ * @return A KerberosMessageType associated with this value
+ */
+ public static KerberosMessageType getTypeByOrdinal( int value )
+ {
+ switch ( value )
+ {
+ case 10 : return AS_REQ;
+ case 11 : return AS_REP;
+ case 12 : return TGS_REQ;
+ case 13 : return TGS_REP;
+ case 14 : return AP_REQ;
+ case 15 : return AP_REP;
+ case 20 : return KRB_SAFE;
+ case 21 : return KRB_PRIV;
+ case 22 : return KRB_CRED;
+ case 27 : return ENC_AP_REP_PART;
+ case 28 : return ENC_PRIV_PART;
+ case 30 : return KRB_ERROR;
+ default : return null;
+ }
+ }
+}
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/KerberosUtils.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/KerberosUtils.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/KerberosUtils.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/KerberosUtils.java Mon Oct 29 11:14:59 2007
@@ -25,6 +25,7 @@
import javax.security.auth.kerberos.KerberosPrincipal;
+import org.apache.directory.server.kerberos.shared.messages.value.PrincipalName;
import org.apache.directory.shared.ldap.util.StringTools;
/**
@@ -37,7 +38,8 @@
/** A constant for integer optional values */
public static final int NULL = -1;
- private static final List<String> EMPTY_PRINCIPAL_NAME = new ArrayList<String>();
+ /** An empty list of principal names */
+ public static final List<String> EMPTY_PRINCIPAL_NAME = new ArrayList<String>();
/**
* Parse a KerberosPrincipal instance and return the names. The Principal name
@@ -195,5 +197,27 @@
}
return nameComponents;
+ }
+
+
+ /**
+ * Constructs a KerberosPrincipal from a PrincipalName and an
+ * optional realm
+ *
+ * @param principal The principal name and type
+ * @param realm The optional realm
+ *
+ * @return A KerberosPrincipal
+ */
+ public static KerberosPrincipal getKerberosPrincipal( PrincipalName principal, String realm )
+ {
+ String name = principal.getNameString();
+
+ if ( !StringTools.isEmpty( realm ) )
+ {
+ name += '@' + realm;
+ }
+
+ return new KerberosPrincipal( name, principal.getNameType().getOrdinal() );
}
}
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/ApplicationRequestDecoder.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/ApplicationRequestDecoder.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/ApplicationRequestDecoder.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/ApplicationRequestDecoder.java Mon Oct 29 11:14:59 2007
@@ -23,8 +23,8 @@
import java.io.IOException;
import java.util.Enumeration;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
import org.apache.directory.server.kerberos.shared.messages.ApplicationRequest;
-import org.apache.directory.server.kerberos.shared.messages.MessageType;
import org.apache.directory.server.kerberos.shared.messages.value.ApOptions;
import org.apache.directory.shared.asn1.der.ASN1InputStream;
import org.apache.directory.shared.asn1.der.DERApplicationSpecific;
@@ -74,7 +74,7 @@
{
ApplicationRequest authHeader = new ApplicationRequest();
- for ( Enumeration e = sequence.getObjects(); e.hasMoreElements(); )
+ for ( Enumeration<DEREncodable> e = sequence.getObjects(); e.hasMoreElements(); )
{
DERTaggedObject object = ( ( DERTaggedObject ) e.nextElement() );
int tag = object.getTagNo();
@@ -86,10 +86,12 @@
DERInteger tag0 = ( DERInteger ) derObject;
authHeader.setProtocolVersionNumber( tag0.intValue() );
break;
+
case 1:
DERInteger tag1 = ( DERInteger ) derObject;
- authHeader.setMessageType( MessageType.getTypeByOrdinal( tag1.intValue() ) );
+ authHeader.setMessageType( KerberosMessageType.getTypeByOrdinal( tag1.intValue() ) );
break;
+
case 2:
DERBitString apOptions = ( DERBitString ) derObject;
authHeader.setApOptions( new ApOptions( apOptions.getOctets() ) );
@@ -98,6 +100,7 @@
DERApplicationSpecific tag3 = ( DERApplicationSpecific ) derObject;
authHeader.setTicket( TicketDecoder.decode( tag3 ) );
break;
+
case 4:
DERSequence tag4 = ( DERSequence ) derObject;
authHeader.setEncPart( EncryptedDataDecoder.decode( tag4 ) );
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/ErrorMessageDecoder.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/ErrorMessageDecoder.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/ErrorMessageDecoder.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/ErrorMessageDecoder.java Mon Oct 29 11:14:59 2007
@@ -88,7 +88,7 @@
KerberosPrincipalModifier clientModifier = new KerberosPrincipalModifier();
KerberosPrincipalModifier serverModifier = new KerberosPrincipalModifier();
- for ( Enumeration e = sequence.getObjects(); e.hasMoreElements(); )
+ for ( Enumeration<DEREncodable> e = sequence.getObjects(); e.hasMoreElements(); )
{
DERTaggedObject object = ( DERTaggedObject ) e.nextElement();
int tag = object.getTagNo();
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/KdcReplyDecoder.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/KdcReplyDecoder.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/KdcReplyDecoder.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/KdcReplyDecoder.java Mon Oct 29 11:14:59 2007
@@ -26,8 +26,8 @@
import javax.security.auth.kerberos.KerberosPrincipal;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
import org.apache.directory.server.kerberos.shared.messages.KdcReply;
-import org.apache.directory.server.kerberos.shared.messages.MessageType;
import org.apache.directory.server.kerberos.shared.messages.components.Ticket;
import org.apache.directory.server.kerberos.shared.messages.value.EncryptedData;
import org.apache.directory.server.kerberos.shared.messages.value.KerberosPrincipalModifier;
@@ -81,14 +81,14 @@
}*/
private KdcReply decodeKdcReplySequence( DERSequence sequence ) throws IOException
{
- MessageType msgType = MessageType.NULL;
+ KerberosMessageType msgType = null;
PaData[] paData = null;
Ticket ticket = null;
EncryptedData encPart = null;
KerberosPrincipalModifier modifier = new KerberosPrincipalModifier();
- for ( Enumeration e = sequence.getObjects(); e.hasMoreElements(); )
+ for ( Enumeration<DEREncodable> e = sequence.getObjects(); e.hasMoreElements(); )
{
DERTaggedObject object = ( DERTaggedObject ) e.nextElement();
int tag = object.getTagNo();
@@ -100,26 +100,32 @@
// DERInteger tag0 = ( DERInteger ) derObject;
// int pvno = tag0.intValue();
break;
+
case 1:
DERInteger tag1 = ( DERInteger ) derObject;
- msgType = MessageType.getTypeByOrdinal( tag1.intValue() );
+ msgType = KerberosMessageType.getTypeByOrdinal( tag1.intValue() );
break;
+
case 2:
DERSequence tag2 = ( DERSequence ) derObject;
paData = PreAuthenticationDataDecoder.decodeSequence( tag2 );
break;
+
case 3:
DERGeneralString tag3 = ( DERGeneralString ) derObject;
modifier.setRealm( tag3.getString() );
break;
+
case 4:
DERSequence tag4 = ( DERSequence ) derObject;
modifier.setPrincipalName( PrincipalNameDecoder.decode( tag4 ) );
break;
+
case 5:
DERApplicationSpecific tag5 = ( DERApplicationSpecific ) derObject;
ticket = TicketDecoder.decode( tag5 );
break;
+
case 6:
DERSequence tag6 = ( DERSequence ) derObject;
encPart = ( EncryptedDataDecoder.decode( tag6 ) );
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/KdcRequestDecoder.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/KdcRequestDecoder.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/KdcRequestDecoder.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/KdcRequestDecoder.java Mon Oct 29 11:14:59 2007
@@ -24,8 +24,8 @@
import java.nio.ByteBuffer;
import java.util.Enumeration;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
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.KdcOptions;
import org.apache.directory.server.kerberos.shared.messages.value.PaData;
import org.apache.directory.server.kerberos.shared.messages.value.RequestBody;
@@ -79,13 +79,13 @@
private KdcRequest decodeKdcRequestSequence( DERSequence sequence ) throws IOException
{
int pvno = 5;
- MessageType msgType = MessageType.NULL;
+ KerberosMessageType msgType = null;
PaData[] paData = null;
RequestBody requestBody = null;
byte[] bodyBytes = null;
- for ( Enumeration e = sequence.getObjects(); e.hasMoreElements(); )
+ for ( Enumeration<DEREncodable> e = sequence.getObjects(); e.hasMoreElements(); )
{
DERTaggedObject object = ( DERTaggedObject ) e.nextElement();
int tag = object.getTagNo();
@@ -97,14 +97,17 @@
DERInteger tag1 = ( DERInteger ) derObject;
pvno = tag1.intValue();
break;
+
case 2:
DERInteger tag2 = ( DERInteger ) derObject;
- msgType = MessageType.getTypeByOrdinal( tag2.intValue() );
+ msgType = KerberosMessageType.getTypeByOrdinal( tag2.intValue() );
break;
+
case 3:
DERSequence tag3 = ( DERSequence ) derObject;
paData = PreAuthenticationDataDecoder.decodeSequence( tag3 );
break;
+
case 4:
DERSequence tag4 = ( DERSequence ) derObject;
requestBody = decodeRequestBody( tag4 );
@@ -147,7 +150,7 @@
{
RequestBodyModifier modifier = new RequestBodyModifier();
- for ( Enumeration e = sequence.getObjects(); e.hasMoreElements(); )
+ for ( Enumeration<DEREncodable> e = sequence.getObjects(); e.hasMoreElements(); )
{
DERTaggedObject object = ( DERTaggedObject ) e.nextElement();
int tag = object.getTagNo();
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/LastRequestDecoder.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/LastRequestDecoder.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/LastRequestDecoder.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/LastRequestDecoder.java Mon Oct 29 11:14:59 2007
@@ -50,7 +50,7 @@
LastRequestEntry[] entries = new LastRequestEntry[sequence.size()];
int ii = 0;
- for ( Enumeration e = sequence.getObjects(); e.hasMoreElements(); )
+ for ( Enumeration<DEREncodable> e = sequence.getObjects(); e.hasMoreElements(); )
{
DERSequence object = ( DERSequence ) e.nextElement();
LastRequestEntry entry = decode( object );
@@ -67,7 +67,7 @@
LastRequestType type = LastRequestType.NONE;
KerberosTime value = null;
- for ( Enumeration e = sequence.getObjects(); e.hasMoreElements(); )
+ for ( Enumeration<DEREncodable> e = sequence.getObjects(); e.hasMoreElements(); )
{
DERTaggedObject object = ( DERTaggedObject ) e.nextElement();
int tag = object.getTagNo();
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/PrivateMessageDecoder.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/PrivateMessageDecoder.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/PrivateMessageDecoder.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/PrivateMessageDecoder.java Mon Oct 29 11:14:59 2007
@@ -23,7 +23,7 @@
import java.io.IOException;
import java.util.Enumeration;
-import org.apache.directory.server.kerberos.shared.messages.MessageType;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
import org.apache.directory.server.kerberos.shared.messages.application.PrivateMessage;
import org.apache.directory.shared.asn1.der.ASN1InputStream;
import org.apache.directory.shared.asn1.der.DERApplicationSpecific;
@@ -62,7 +62,7 @@
{
PrivateMessage message = new PrivateMessage();
- for ( Enumeration e = sequence.getObjects(); e.hasMoreElements(); )
+ for ( Enumeration<DEREncodable> e = sequence.getObjects(); e.hasMoreElements(); )
{
DERTaggedObject object = ( DERTaggedObject ) e.nextElement();
int tag = object.getTagNo();
@@ -74,10 +74,12 @@
DERInteger tag0 = ( DERInteger ) derObject;
message.setProtocolVersionNumber( tag0.intValue() );
break;
+
case 1:
DERInteger tag1 = ( DERInteger ) derObject;
- message.setMessageType( MessageType.getTypeByOrdinal( tag1.intValue() ) );
+ message.setMessageType( KerberosMessageType.getTypeByOrdinal( tag1.intValue() ) );
break;
+
case 3:
DERSequence tag3 = ( DERSequence ) derObject;
message.setEncryptedPart( EncryptedDataDecoder.decode( tag3 ) );
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/TicketDecoder.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/TicketDecoder.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/TicketDecoder.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/TicketDecoder.java Mon Oct 29 11:14:59 2007
@@ -24,7 +24,6 @@
import java.util.Enumeration;
import org.apache.directory.server.kerberos.shared.messages.components.Ticket;
-import org.apache.directory.server.kerberos.shared.messages.components.TicketModifier;
import org.apache.directory.shared.asn1.der.ASN1InputStream;
import org.apache.directory.shared.asn1.der.DERApplicationSpecific;
import org.apache.directory.shared.asn1.der.DEREncodable;
@@ -69,7 +68,7 @@
Ticket[] tickets = new Ticket[sequence.size()];
int ii = 0;
- for ( Enumeration e = sequence.getObjects(); e.hasMoreElements(); )
+ for ( Enumeration<DEREncodable> e = sequence.getObjects(); e.hasMoreElements(); )
{
DERApplicationSpecific object = ( DERApplicationSpecific ) e.nextElement();
tickets[ii] = decode( object );
@@ -91,9 +90,9 @@
{
DERSequence sequence = ( DERSequence ) app.getObject();
- TicketModifier modifier = new TicketModifier();
+ Ticket ticket = new Ticket();
- for ( Enumeration e = sequence.getObjects(); e.hasMoreElements(); )
+ for ( Enumeration<DEREncodable> e = sequence.getObjects(); e.hasMoreElements(); )
{
DERTaggedObject object = ( DERTaggedObject ) e.nextElement();
int tag = object.getTagNo();
@@ -103,23 +102,26 @@
{
case 0:
DERInteger tag0 = ( DERInteger ) derObject;
- modifier.setTicketVersionNumber( tag0.intValue() );
+ ticket.setTktVno( tag0.intValue() );
break;
+
case 1:
DERGeneralString tag1 = ( DERGeneralString ) derObject;
- modifier.setServerRealm( tag1.getString() );
+ ticket.setRealm( tag1.getString() );
break;
+
case 2:
DERSequence tag2 = ( DERSequence ) derObject;
- modifier.setServerName( PrincipalNameDecoder.decode( tag2 ) );
+ ticket.setSName( PrincipalNameDecoder.decode( tag2 ) );
break;
+
case 3:
DERSequence tag3 = ( DERSequence ) derObject;
- modifier.setEncPart( EncryptedDataDecoder.decode( tag3 ) );
+ ticket.setEncPart( EncryptedDataDecoder.decode( tag3 ) );
break;
}
}
- return modifier.getTicket();
+ return ticket;
}
}
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/encoder/TicketEncoder.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/encoder/TicketEncoder.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/encoder/TicketEncoder.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/encoder/TicketEncoder.java Mon Oct 29 11:14:59 2007
@@ -69,9 +69,9 @@
{
DERSequence vector = new DERSequence();
- vector.add( new DERTaggedObject( 0, DERInteger.valueOf( ticket.getVersionNumber() ) ) );
+ vector.add( new DERTaggedObject( 0, DERInteger.valueOf( ticket.getTktVno() ) ) );
vector.add( new DERTaggedObject( 1, DERGeneralString.valueOf( ticket.getRealm() ) ) );
- vector.add( new DERTaggedObject( 2, PrincipalNameEncoder.encode( ticket.getServerPrincipal() ) ) );
+ vector.add( new DERTaggedObject( 2, PrincipalNameEncoder.encode( ticket.getSName() ) ) );
vector.add( new DERTaggedObject( 3, EncryptedDataEncoder.encodeSequence( ticket.getEncPart() ) ) );
DERApplicationSpecific ticketSequence = null;
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/ApplicationRequest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/ApplicationRequest.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/ApplicationRequest.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/ApplicationRequest.java Mon Oct 29 11:14:59 2007
@@ -20,6 +20,7 @@
package org.apache.directory.server.kerberos.shared.messages;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
import org.apache.directory.server.kerberos.shared.messages.components.Ticket;
import org.apache.directory.server.kerberos.shared.messages.value.ApOptions;
import org.apache.directory.server.kerberos.shared.messages.value.EncryptedData;
@@ -41,7 +42,7 @@
*/
public ApplicationRequest()
{
- super( MessageType.KRB_AP_REQ );
+ super( KerberosMessageType.AP_REQ );
// used by ASN1 decoder
}
@@ -55,7 +56,7 @@
*/
public ApplicationRequest( ApOptions apOptions, Ticket ticket, EncryptedData encPart )
{
- super( MessageType.KRB_AP_REQ );
+ super( KerberosMessageType.AP_REQ );
this.apOptions = apOptions;
this.ticket = ticket;
this.encPart = encPart;
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/AuthenticationReply.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/AuthenticationReply.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/AuthenticationReply.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/AuthenticationReply.java Mon Oct 29 11:14:59 2007
@@ -22,6 +22,7 @@
import javax.security.auth.kerberos.KerberosPrincipal;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
import org.apache.directory.server.kerberos.shared.messages.components.Ticket;
import org.apache.directory.server.kerberos.shared.messages.value.EncryptedData;
import org.apache.directory.server.kerberos.shared.messages.value.PaData;
@@ -38,7 +39,7 @@
*/
public AuthenticationReply()
{
- super( MessageType.KRB_AS_REP );
+ super( KerberosMessageType.AS_REP );
}
@@ -53,6 +54,6 @@
public AuthenticationReply( PaData[] paData, KerberosPrincipal clientPrincipal, Ticket ticket,
EncryptedData encPart )
{
- super( paData, clientPrincipal, ticket, encPart, MessageType.KRB_AS_REP );
+ super( paData, clientPrincipal, ticket, encPart, KerberosMessageType.AS_REP );
}
}
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/ErrorMessage.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/ErrorMessage.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/ErrorMessage.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/ErrorMessage.java Mon Oct 29 11:14:59 2007
@@ -22,6 +22,7 @@
import javax.security.auth.kerberos.KerberosPrincipal;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
import org.apache.directory.server.kerberos.shared.messages.value.KerberosTime;
@@ -59,7 +60,7 @@
int serverMicroSecond, int errorCode, KerberosPrincipal clientPrincipal, KerberosPrincipal serverPrincipal,
String explanatoryText, byte[] explanatoryData )
{
- super( MessageType.KRB_ERROR );
+ super( KerberosMessageType.KRB_ERROR );
this.clientTime = clientTime;
this.clientMicroSecond = clientMicroSecond;
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/KdcReply.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/KdcReply.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/KdcReply.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/KdcReply.java Mon Oct 29 11:14:59 2007
@@ -22,6 +22,7 @@
import javax.security.auth.kerberos.KerberosPrincipal;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
import org.apache.directory.server.kerberos.shared.messages.components.EncKdcRepPart;
import org.apache.directory.server.kerberos.shared.messages.components.Ticket;
import org.apache.directory.server.kerberos.shared.messages.value.EncryptedData;
@@ -52,7 +53,7 @@
*
* @param msgType
*/
- public KdcReply( MessageType msgType )
+ public KdcReply( KerberosMessageType msgType )
{
super( msgType );
}
@@ -68,7 +69,7 @@
* @param msgType
*/
public KdcReply( PaData[] paData, KerberosPrincipal clientPrincipal, Ticket ticket,
- EncryptedData encPart, MessageType msgType )
+ EncryptedData encPart, KerberosMessageType msgType )
{
this( msgType );
this.paData = paData;
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/KdcRequest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/KdcRequest.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/KdcRequest.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/KdcRequest.java Mon Oct 29 11:14:59 2007
@@ -22,6 +22,7 @@
import javax.security.auth.kerberos.KerberosPrincipal;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
import org.apache.directory.server.kerberos.shared.crypto.encryption.EncryptionType;
import org.apache.directory.server.kerberos.shared.messages.components.Ticket;
import org.apache.directory.server.kerberos.shared.messages.value.EncryptedData;
@@ -51,7 +52,7 @@
* @param preAuthData
* @param requestBody
*/
- public KdcRequest( int pvno, MessageType messageType, PaData[] preAuthData, RequestBody requestBody )
+ public KdcRequest( int pvno, KerberosMessageType messageType, PaData[] preAuthData, RequestBody requestBody )
{
super( pvno, messageType );
this.preAuthData = preAuthData;
@@ -68,7 +69,7 @@
* @param requestBody
* @param bodyBytes
*/
- public KdcRequest( int pvno, MessageType messageType, PaData[] preAuthData, RequestBody requestBody,
+ public KdcRequest( int pvno, KerberosMessageType messageType, PaData[] preAuthData, RequestBody requestBody,
byte[] bodyBytes )
{
this( pvno, messageType, preAuthData, requestBody );
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/KerberosMessage.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/KerberosMessage.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/KerberosMessage.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/KerberosMessage.java Mon Oct 29 11:14:59 2007
@@ -19,6 +19,8 @@
*/
package org.apache.directory.server.kerberos.shared.messages;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
+
/**
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
@@ -32,7 +34,7 @@
public static final int PVNO = 5;
private int protocolVersionNumber;
- private MessageType messageType;
+ private KerberosMessageType messageType;
/**
@@ -40,7 +42,7 @@
*
* @param type
*/
- public KerberosMessage( MessageType type )
+ public KerberosMessage( KerberosMessageType type )
{
this( PVNO, type );
}
@@ -52,7 +54,7 @@
* @param versionNumber
* @param type
*/
- public KerberosMessage( int versionNumber, MessageType type )
+ public KerberosMessage( int versionNumber, KerberosMessageType type )
{
protocolVersionNumber = versionNumber;
messageType = type;
@@ -64,7 +66,7 @@
*
* @return The {@link MessageType}.
*/
- public MessageType getMessageType()
+ public KerberosMessageType getMessageType()
{
return messageType;
}
@@ -75,7 +77,7 @@
*
* @param type
*/
- public void setMessageType( MessageType type )
+ public void setMessageType( KerberosMessageType type )
{
messageType = type;
}
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/TicketGrantReply.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/TicketGrantReply.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/TicketGrantReply.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/TicketGrantReply.java Mon Oct 29 11:14:59 2007
@@ -22,6 +22,7 @@
import javax.security.auth.kerberos.KerberosPrincipal;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
import org.apache.directory.server.kerberos.shared.messages.components.Ticket;
import org.apache.directory.server.kerberos.shared.messages.value.EncryptedData;
import org.apache.directory.server.kerberos.shared.messages.value.PaData;
@@ -38,7 +39,7 @@
*/
public TicketGrantReply()
{
- super( MessageType.KRB_TGS_REP );
+ super( KerberosMessageType.TGS_REP );
}
@@ -53,6 +54,6 @@
public TicketGrantReply( PaData[] pAData, KerberosPrincipal clientPrincipal, Ticket ticket,
EncryptedData encPart )
{
- super( pAData, clientPrincipal, ticket, encPart, MessageType.KRB_TGS_REP );
+ super( pAData, clientPrincipal, ticket, encPart, KerberosMessageType.TGS_REP );
}
}
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/ApplicationReply.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/ApplicationReply.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/ApplicationReply.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/ApplicationReply.java Mon Oct 29 11:14:59 2007
@@ -20,8 +20,8 @@
package org.apache.directory.server.kerberos.shared.messages.application;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
import org.apache.directory.server.kerberos.shared.messages.KerberosMessage;
-import org.apache.directory.server.kerberos.shared.messages.MessageType;
import org.apache.directory.server.kerberos.shared.messages.value.EncryptedData;
@@ -41,7 +41,7 @@
*/
public ApplicationReply( EncryptedData encPart )
{
- super( MessageType.KRB_AP_REP );
+ super( KerberosMessageType.AP_REP );
encryptedPart = encPart;
}
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/CredentialMessage.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/CredentialMessage.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/CredentialMessage.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/CredentialMessage.java Mon Oct 29 11:14:59 2007
@@ -20,8 +20,8 @@
package org.apache.directory.server.kerberos.shared.messages.application;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
import org.apache.directory.server.kerberos.shared.messages.KerberosMessage;
-import org.apache.directory.server.kerberos.shared.messages.MessageType;
import org.apache.directory.server.kerberos.shared.messages.components.Ticket;
import org.apache.directory.server.kerberos.shared.messages.value.EncryptedData;
@@ -44,7 +44,7 @@
*/
public CredentialMessage( EncryptedData encPart, Ticket[] tickets )
{
- super( MessageType.KRB_CRED );
+ super( KerberosMessageType.KRB_CRED );
this.encPart = encPart;
this.tickets = tickets;
}
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/PrivateMessage.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/PrivateMessage.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/PrivateMessage.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/PrivateMessage.java Mon Oct 29 11:14:59 2007
@@ -20,8 +20,8 @@
package org.apache.directory.server.kerberos.shared.messages.application;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
import org.apache.directory.server.kerberos.shared.messages.KerberosMessage;
-import org.apache.directory.server.kerberos.shared.messages.MessageType;
import org.apache.directory.server.kerberos.shared.messages.value.EncryptedData;
@@ -39,7 +39,7 @@
*/
public PrivateMessage()
{
- super( MessageType.KRB_PRIV );
+ super( KerberosMessageType.KRB_PRIV );
// used by ASN.1 decoder
}
@@ -51,7 +51,7 @@
*/
public PrivateMessage( EncryptedData encryptedPart )
{
- super( MessageType.KRB_PRIV );
+ super( KerberosMessageType.KRB_PRIV );
this.encryptedPart = encryptedPart;
}
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/SafeMessage.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/SafeMessage.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/SafeMessage.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/application/SafeMessage.java Mon Oct 29 11:14:59 2007
@@ -20,8 +20,8 @@
package org.apache.directory.server.kerberos.shared.messages.application;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
import org.apache.directory.server.kerberos.shared.messages.KerberosMessage;
-import org.apache.directory.server.kerberos.shared.messages.MessageType;
import org.apache.directory.server.kerberos.shared.messages.value.Checksum;
import org.apache.directory.server.kerberos.shared.messages.value.HostAddress;
import org.apache.directory.server.kerberos.shared.messages.value.KerberosTime;
@@ -45,7 +45,7 @@
*/
public SafeMessage( SafeBody safeBody, Checksum cksum )
{
- super( MessageType.KRB_SAFE );
+ super( KerberosMessageType.KRB_SAFE );
this.safeBody = safeBody;
this.cksum = cksum;
}
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/EncApRepPart.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/EncApRepPart.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/EncApRepPart.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/EncApRepPart.java Mon Oct 29 11:14:59 2007
@@ -20,9 +20,9 @@
package org.apache.directory.server.kerberos.shared.messages.components;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
import org.apache.directory.server.kerberos.shared.messages.Encodable;
import org.apache.directory.server.kerberos.shared.messages.KerberosMessage;
-import org.apache.directory.server.kerberos.shared.messages.MessageType;
import org.apache.directory.server.kerberos.shared.messages.value.EncryptionKey;
import org.apache.directory.server.kerberos.shared.messages.value.KerberosTime;
@@ -51,7 +51,7 @@
*/
public EncApRepPart( KerberosTime clientTime, int cusec, EncryptionKey subSessionKey, Integer sequenceNumber )
{
- super( MessageType.ENC_AP_REP_PART );
+ super( KerberosMessageType.ENC_AP_REP_PART );
this.clientTime = clientTime;
this.cusec = cusec;
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/EncKrbPrivPart.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/EncKrbPrivPart.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/EncKrbPrivPart.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/EncKrbPrivPart.java Mon Oct 29 11:14:59 2007
@@ -20,9 +20,9 @@
package org.apache.directory.server.kerberos.shared.messages.components;
+import org.apache.directory.server.kerberos.shared.KerberosMessageType;
import org.apache.directory.server.kerberos.shared.messages.Encodable;
import org.apache.directory.server.kerberos.shared.messages.KerberosMessage;
-import org.apache.directory.server.kerberos.shared.messages.MessageType;
import org.apache.directory.server.kerberos.shared.messages.value.HostAddress;
import org.apache.directory.server.kerberos.shared.messages.value.KerberosTime;
@@ -56,7 +56,7 @@
public EncKrbPrivPart( byte[] userData, KerberosTime timestamp, Integer usec, Integer sequenceNumber,
HostAddress senderAddress, HostAddress recipientAddress )
{
- super( MessageType.ENC_PRIV_PART );
+ super( KerberosMessageType.ENC_PRIV_PART );
this.userData = userData;
this.timestamp = timestamp;
Added: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/InvalidTicketException.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/InvalidTicketException.java?rev=589780&view=auto
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/InvalidTicketException.java (added)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/InvalidTicketException.java Mon Oct 29 11:14:59 2007
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF 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.apache.directory.server.kerberos.shared.messages.components;
+
+import org.apache.directory.server.kerberos.shared.exceptions.ErrorType;
+import org.apache.directory.server.kerberos.shared.exceptions.KerberosException;
+
+/**
+ * A exception used when there was an error while creating a Ticket
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class InvalidTicketException extends KerberosException
+{
+ static final long serialVersionUID = 1L;
+
+
+ public InvalidTicketException( ErrorType errorType )
+ {
+ super( errorType );
+ }
+
+
+ public InvalidTicketException( ErrorType errorType, String explanation )
+ {
+ super( errorType, explanation );
+ }
+
+}
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/Ticket.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/Ticket.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/Ticket.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/components/Ticket.java Mon Oct 29 11:14:59 2007
@@ -20,15 +20,30 @@
package org.apache.directory.server.kerberos.shared.messages.components;
+import java.nio.BufferOverflowException;
+import java.nio.ByteBuffer;
+import java.text.ParseException;
+
import javax.security.auth.kerberos.KerberosPrincipal;
+import org.apache.directory.server.kerberos.shared.KerberosUtils;
+import org.apache.directory.server.kerberos.shared.exceptions.ErrorType;
import org.apache.directory.server.kerberos.shared.messages.value.AuthorizationData;
import org.apache.directory.server.kerberos.shared.messages.value.EncryptedData;
import org.apache.directory.server.kerberos.shared.messages.value.EncryptionKey;
import org.apache.directory.server.kerberos.shared.messages.value.HostAddresses;
import org.apache.directory.server.kerberos.shared.messages.value.KerberosTime;
-import org.apache.directory.server.kerberos.shared.messages.value.TicketFlags;
+import org.apache.directory.server.kerberos.shared.messages.value.PrincipalName;
import org.apache.directory.server.kerberos.shared.messages.value.TransitedEncoding;
+import org.apache.directory.server.kerberos.shared.messages.value.flags.TicketFlags;
+import org.apache.directory.shared.asn1.AbstractAsn1Object;
+import org.apache.directory.shared.asn1.ber.tlv.TLV;
+import org.apache.directory.shared.asn1.ber.tlv.UniversalTag;
+import org.apache.directory.shared.asn1.ber.tlv.Value;
+import org.apache.directory.shared.asn1.codec.EncoderException;
+import org.apache.directory.shared.ldap.util.StringTools;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
@@ -37,43 +52,77 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$, $Date$
*/
-public class Ticket
+public class Ticket extends AbstractAsn1Object
{
- /**
- * Constant for the {@link Ticket} version number (5).
- */
+ /** The logger */
+ private static final Logger LOG = LoggerFactory.getLogger( Ticket.class );
+
+ /** Speedup for logs */
+ private static final boolean IS_DEBUG = LOG.isDebugEnabled();
+
+ /** Constant for the {@link Ticket} version number (5) */
public static final int TICKET_VNO = 5;
- private int versionNumber;
- private KerberosPrincipal serverPrincipal;
+ /** The Kerberos version number. Should be 5 */
+ private int tktvno;
+
+ /** A storage for a byte array representation of the realm */
+ private byte[] realmBytes;
+
+ /** The server principal name */
+ private PrincipalName sName;
+
+ /** The server realm */
+ private String realm;
+
+ /** The encoded part */
private EncryptedData encPart;
+
+ /** The decoded ticket part */
private EncTicketPart encTicketPart;
+ // Storage for computed lengths
+ private transient int tktvnoLength;
+ private transient int realmLength;
+ private transient int sNameLength;
+ private transient int encPartLength;
+ private transient int ticketSeqLength;
+ private transient int ticketLength;
/**
* Creates a new instance of Ticket.
*
- * @param serverPrincipal
- * @param encPart
+ * @param serverPrincipal The server principal
+ * @param encPart The encoded part
*/
- public Ticket( KerberosPrincipal serverPrincipal, EncryptedData encPart )
+ public Ticket( KerberosPrincipal serverPrincipal, EncryptedData encPart ) throws InvalidTicketException
{
this( TICKET_VNO, serverPrincipal, encPart );
+
+ setServerPrincipal( serverPrincipal );
}
/**
* Creates a new instance of Ticket.
+ */
+ public Ticket()
+ {
+ }
+
+
+ /**
+ * Creates a new instance of Ticket.
*
- * @param versionNumber
- * @param serverPrincipal
- * @param encPart
+ * @param tktvno The Kerberos version number
+ * @param serverPrincipal The server principal
+ * @param encPart The encoded part
*/
- public Ticket( int versionNumber, KerberosPrincipal serverPrincipal, EncryptedData encPart )
+ public Ticket( int tktvno, KerberosPrincipal serverPrincipal, EncryptedData encPart ) throws InvalidTicketException
{
- this.versionNumber = versionNumber;
- this.serverPrincipal = serverPrincipal;
+ this.tktvno = tktvno;
this.encPart = encPart;
+ setServerPrincipal( serverPrincipal );
}
@@ -93,12 +142,33 @@
*
* @return The version number.
*/
- public int getVersionNumber()
+ public int getTktVno()
{
- return versionNumber;
+ return tktvno;
}
+
+
+ /**
+ * Set the ticket version number
+ * @param tktvno the ticket version number
+ */
+ public void setTktVno( int tktvno )
+ {
+ this.tktvno = tktvno;
+ }
+
+ /**
+ * Returns the server {@link PrincipalName}.
+ *
+ * @return The server {@link PrincipalName}.
+ */
+ public PrincipalName getSName()
+ {
+ return sName;
+ }
+
/**
* Returns the server {@link KerberosPrincipal}.
*
@@ -106,9 +176,38 @@
*/
public KerberosPrincipal getServerPrincipal()
{
- return serverPrincipal;
+ return KerberosUtils.getKerberosPrincipal( sName, realm );
}
+
+ /**
+ * Set the server principalName
+ * @param sName the server principalName
+ */
+ public void setSName( PrincipalName sName )
+ {
+ this.sName = sName;
+ }
+
+
+ /**
+ * Set the server KerberosPrincipal
+ * @param sName the server KerberosPrincipal
+ */
+ public void setServerPrincipal( KerberosPrincipal serverPrincipal ) throws InvalidTicketException
+ {
+ try
+ {
+ sName = new PrincipalName( serverPrincipal.getName(), serverPrincipal.getNameType() );
+ realm = serverPrincipal.getRealm();
+ }
+ catch ( ParseException pe )
+ {
+ LOG.error( "Cannot create a ticket for the {} KerberosPrincipal, error : {}", serverPrincipal, pe.getMessage() );
+ throw new InvalidTicketException( ErrorType.KRB_ERR_GENERIC, "Cannot create a ticket : " + pe.getMessage() );
+ }
+ }
+
/**
* Returns the server realm.
@@ -117,11 +216,21 @@
*/
public String getRealm()
{
- return serverPrincipal.getRealm();
+ return realm;
}
/**
+ * Set the server realm
+ * @param realm the server realm
+ */
+ public void setRealm( String realm )
+ {
+ this.realm = realm;
+ }
+
+
+ /**
* Returns the {@link EncryptedData}.
*
* @return The {@link EncryptedData}.
@@ -131,6 +240,16 @@
return encPart;
}
+
+ /**
+ * Set the encrypted ticket part
+ * @param encPart the encrypted ticket part
+ */
+ public void setEncPart( EncryptedData encPart )
+ {
+ this.encPart = encPart;
+ }
+
/**
* Returns the {@link EncTicketPart}.
@@ -147,7 +266,7 @@
* Returns the {@link AuthorizationData}.
*
* @return The {@link AuthorizationData}.
- */
+ *
public AuthorizationData getAuthorizationData()
{
return encTicketPart.getAuthorizationData();
@@ -158,7 +277,7 @@
* Returns the auth {@link KerberosTime}.
*
* @return The auth {@link KerberosTime}.
- */
+ *
public KerberosTime getAuthTime()
{
return encTicketPart.getAuthTime();
@@ -169,7 +288,7 @@
* Returns the client {@link HostAddresses}.
*
* @return The client {@link HostAddresses}.
- */
+ *
public HostAddresses getClientAddresses()
{
return encTicketPart.getClientAddresses();
@@ -180,21 +299,31 @@
* Returns the client {@link KerberosPrincipal}.
*
* @return The client {@link KerberosPrincipal}.
- */
+ *
public KerberosPrincipal getClientPrincipal()
{
return encTicketPart.getClientPrincipal();
}
+ /**
+ * Returns the client {@link PrincipalName}.
+ *
+ * @return The client {@link PrincipalName}.
+ *
+ public PrincipalName getClientPrincipalName()
+ {
+ return encTicketPart.getClientPrincipalName();
+ }
+
/**
* Returns the client realm.
*
* @return The client realm.
- */
+ *
public String getClientRealm()
{
- return encTicketPart.getClientPrincipal().getRealm();
+ return encTicketPart.getClientRealm();
}
@@ -202,7 +331,7 @@
* Returns the end {@link KerberosTime}.
*
* @return The end {@link KerberosTime}.
- */
+ *
public KerberosTime getEndTime()
{
return encTicketPart.getEndTime();
@@ -213,18 +342,28 @@
* Returns the {@link TicketFlags}.
*
* @return The {@link TicketFlags}.
- */
+ *
public TicketFlags getFlags()
{
return encTicketPart.getFlags();
}
+ /**
+ * Returns the integer value for the {@link TicketFlags}.
+ *
+ * @return The {@link TicketFlags}.
+ *
+ public int getFlagsIntValue()
+ {
+ return encTicketPart.getFlags().getIntValue();
+ }
+
/**
* Returns the renew till {@link KerberosTime}.
*
* @return The renew till {@link KerberosTime}.
- */
+ *
public KerberosTime getRenewTill()
{
return encTicketPart.getRenewTill();
@@ -235,7 +374,7 @@
* Returns the session {@link EncryptionKey}.
*
* @return The session {@link EncryptionKey}.
- */
+ *
public EncryptionKey getSessionKey()
{
return encTicketPart.getSessionKey();
@@ -246,7 +385,7 @@
* Returns the start {@link KerberosTime}.
*
* @return The start {@link KerberosTime}.
- */
+ *
public KerberosTime getStartTime()
{
return encTicketPart.getStartTime();
@@ -257,7 +396,7 @@
* Returns the {@link TransitedEncoding}.
*
* @return The {@link TransitedEncoding}.
- */
+ *
public TransitedEncoding getTransitedEncoding()
{
return encTicketPart.getTransitedEncoding();
@@ -269,9 +408,131 @@
*
* @param flag
* @return true if the flag at the given index is set.
- */
+ *
public boolean getFlag( int flag )
{
- return encTicketPart.getFlags().get( flag );
+ return encTicketPart.getFlags().isFlagSet( flag );
+ }
+
+ /**
+ * Compute the Ticket length
+ *
+ * Ticket :
+ *
+ * 0x61 L1 Ticket [APPLICATION 1]
+ * |
+ * +--> 0x30 L2 Ticket SEQUENCE
+ * |
+ * +--> 0xA0 L3 tkt-vno tag
+ * | |
+ * | +--> 0x02 L3-1 tkt-vno (int, 5)
+ * |
+ * +--> 0xA1 L4 realm tag
+ * | |
+ * | +--> 0x1B L4-1 realm (KerberosString)
+ * |
+ * +--> 0xA2 L5 sname (PrincipalName)
+ * |
+ * +--> 0xA3 L6 enc-part (EncryptedData)
+ */
+ public int computeLength()
+ {
+ // Compute the Ticket version length.
+ tktvnoLength = 1 + TLV.getNbBytes( tktvno ) + Value.getNbBytes( tktvno );
+
+ // Compute the Ticket realm length.
+ realmBytes = StringTools.getBytesUtf8( realm );
+ realmLength = 1 + TLV.getNbBytes( realmBytes.length ) + realmBytes.length;
+
+ // Compute the principal length
+ sNameLength = sName.computeLength();
+
+ // Compute the encrypted data
+ encPartLength = encPart.computeLength();
+
+ // Compute the sequence size
+ ticketSeqLength =
+ 1 + TLV.getNbBytes( tktvnoLength ) + tktvnoLength +
+ 1 + TLV.getNbBytes( realmLength ) + realmLength +
+ 1 + TLV.getNbBytes( sNameLength ) + sNameLength +
+ 1 + TLV.getNbBytes( encPartLength ) + encPartLength;
+
+ // compute the global size
+ ticketLength = 1 + TLV.getNbBytes( ticketSeqLength ) + ticketSeqLength;
+
+ return 1 + TLV.getNbBytes( ticketLength ) + ticketLength;
+ }
+
+ /**
+ * Encode the Ticket message to a PDU.
+ *
+ * Ticket :
+ *
+ * 0x61 LL
+ * 0x30 LL
+ * 0xA0 LL tktvno
+ * 0xA1 LL realm
+ * 0xA2 LL
+ * sname (PrincipalName)
+ * 0xA3 LL
+ * enc-part (EncryptedData)
+ *
+ * @param buffer The buffer where to put the PDU. It should have been allocated
+ * before, with the right size.
+ * @return The constructed PDU.
+ */
+ public ByteBuffer encode( ByteBuffer buffer ) throws EncoderException
+ {
+ if ( buffer == null )
+ {
+ buffer = ByteBuffer.allocate( computeLength() );
+ }
+
+ try
+ {
+ // The Ticket APPLICATION Tag
+ buffer.put( (byte)0x61 );
+ buffer.put( TLV.getBytes( ticketLength ) );
+
+ // The Ticket SEQUENCE Tag
+ buffer.put( UniversalTag.SEQUENCE_TAG );
+ buffer.put( TLV.getBytes( ticketSeqLength ) );
+
+ // The tkt-vno Tag and value
+ buffer.put( ( byte ) 0xA0 );
+ buffer.put( TLV.getBytes( tktvnoLength ) );
+ Value.encode( buffer, tktvno );
+
+ // The realm Tag and value
+ buffer.put( ( byte ) 0xA1 );
+ buffer.put( TLV.getBytes( realmLength ) );
+ buffer.put( UniversalTag.GENERALIZED_STRING_TAG );
+ buffer.put( TLV.getBytes( realmBytes.length ) );
+ buffer.put( realmBytes );
+
+ // The sname Tag and value
+ buffer.put( ( byte ) 0xA2 );
+ buffer.put( TLV.getBytes( sNameLength ) );
+ sName.encode( buffer );
+
+ // The encPartLength Tag and value
+ buffer.put( ( byte ) 0xA3 );
+ buffer.put( TLV.getBytes( encPartLength ) );
+ encPart.encode( buffer );
+ }
+ catch ( BufferOverflowException boe )
+ {
+ LOG.error( "Cannot encode the Ticket object, the PDU size is {} when only {} bytes has been allocated", 1
+ + TLV.getNbBytes( ticketLength ) + ticketLength, buffer.capacity() );
+ throw new EncoderException( "The PDU buffer size is too small !" );
+ }
+
+ if ( IS_DEBUG )
+ {
+ LOG.debug( "Ticket encoding : {}", StringTools.dumpBytes( buffer.array() ) );
+ LOG.debug( "Ticket initial value : {}", toString() );
+ }
+
+ return buffer;
}
}
Modified: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalName.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalName.java?rev=589780&r1=589779&r2=589780&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalName.java (original)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalName.java Mon Oct 29 11:14:59 2007
@@ -108,7 +108,7 @@
/**
- * A principal Name, componsed of a type and N names.
+ * A principal Name, composed of a type and N names.
*
* PrincipalName ::= SEQUENCE {
* name-type [0] Int32,
@@ -159,9 +159,16 @@
*
* @param principal A Sun kerberosPrincipal instance
*/
- public PrincipalName( KerberosPrincipal principal ) throws ParseException
+ public PrincipalName( KerberosPrincipal principal )
{
- nameString = KerberosUtils.getNames( principal );
+ try
+ {
+ nameString = KerberosUtils.getNames( principal );
+ }
+ catch ( ParseException pe )
+ {
+ nameString = KerberosUtils.EMPTY_PRINCIPAL_NAME;
+ }
this.nameType = PrincipalNameType.getTypeByOrdinal( principal.getNameType() );
}
Added: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/AbstractKerberosFlags.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/AbstractKerberosFlags.java?rev=589780&view=auto
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/AbstractKerberosFlags.java (added)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/AbstractKerberosFlags.java Mon Oct 29 11:14:59 2007
@@ -0,0 +1,226 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF 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.apache.directory.server.kerberos.shared.messages.value.flags;
+
+import org.apache.directory.shared.asn1.primitives.BitString;
+
+/**
+ * An implementation of a BitString for any KerberosFlags. The different values
+ * are stored in an int, as there can't be more than 32 flags (TicketFlag).
+ *
+ * Some basic operations are implemented in this abstract class, like those
+ * manipulating flags.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev: 540371 $, $Date: 2007-05-22 02:00:43 +0200 (Tue, 22 May 2007) $
+ */
+public abstract class AbstractKerberosFlags extends BitString implements KerberosFlags
+{
+ /** The associated value */
+ protected int value;
+
+ /**
+ * Standard constructor, which create a BitString containing 32 bits
+ */
+ public AbstractKerberosFlags()
+ {
+ super( 32 );
+ }
+
+ /**
+ * Standard constructor, taking a byte array
+ */
+ public AbstractKerberosFlags( byte[] flags )
+ {
+ super( flags );
+ }
+
+ /**
+ * A static method to get the bayte array representation of an int
+ * @return The byte array for a list of flags.
+ */
+ public static byte[] getBytes( int flags )
+ {
+ return new byte[]{
+ (byte)( flags >>> 24),
+ (byte)( ( flags >> 16 ) & 0x00ff ),
+ (byte)( ( flags >> 8 ) & 0x00ff ),
+ (byte)( flags & 0x00ff ) };
+ }
+
+ /**
+ * @return The byte array for a KerberosFlags
+ */
+ public byte[] getBytes()
+ {
+ return getData();
+ /*new byte[]{
+ (byte)( value >>> 24),
+ (byte)( ( value >> 16 ) & 0x00ff ),
+ (byte)( ( value >> 8 ) & 0x00ff ),
+ (byte)( value & 0x00ff ) };*/
+ }
+
+ /**
+ * Returns the int value associated with the flags
+ */
+ public int getIntValue()
+ {
+ return value;
+ }
+
+
+
+ /**
+ * Check if a flag is set
+ * @param flags The flags to test
+ * @param flag The flag to check
+ * @return True if the flag is set in the list of flags
+ */
+ public static boolean isFlagSet( int flags, int flag )
+ {
+ return ( flags & ( 1 << flag) ) != 0;
+ }
+
+ /**
+ * Check if a flag is set
+ * @param flags The flags to test
+ * @param flag The flag to check
+ * @return True if the flag is set in the list of flags
+ */
+ /*public static boolean isFlagSet( int flags, KerberosFlag flag )
+ {
+ return ( flags & ( 1 << flag.getOrdinal() ) ) != 0;
+ }*/
+
+ /**
+ * Check if a flag is set for the actual value
+ *
+ * @param flag The flag to check
+ * @return True if the flag is set in the list of flags
+ */
+ public boolean isFlagSet( KerberosFlag flag )
+ {
+ return ( value & ( 1 << flag.getOrdinal() ) ) != 0;
+ }
+
+ /**
+ * Check if a flag is set
+ * @param flags The flags to test
+ * @return True if the flag is set in the list of flags
+ */
+ public boolean isFlagSet( int flag )
+ {
+ return ( flag & ( 1 << value ) ) != 0;
+ }
+
+ /**
+ * Set a flag in a list of flags
+ *
+ * @param flags The list of flags
+ * @param flag The flag to set
+ */
+ /*public static int setFlag( int flags, KerberosFlag flag )
+ {
+ flags |= 1 << flag.getOrdinal();
+ return flags;
+ }*/
+
+ /**
+ * Set a flag in a list of flags
+ *
+ * @param flag The flag to set
+ */
+ public void setFlag( KerberosFlag flag )
+ {
+ value |= 1 << flag.getOrdinal();
+ setBit( flag.getOrdinal() );
+ }
+
+ /**
+ * Set a flag in a list of flags
+ *
+ * @param flag The flag to set
+ */
+ public void setFlag( int flag )
+ {
+ value |= 1 << flag;
+ setBit( flag );
+ }
+
+
+ /**
+ * Modify a byte array to an integer value
+ * @param value The 4 bytes byte array to transform.
+ * @return The int which contains the bytes value.
+ */
+ public void setFlags( byte[] bytes )
+ {
+ if ( (bytes== null ) || ( bytes.length != 4 ) )
+ {
+ value = -1;
+ }
+
+ value = ( bytes[0] << 24 ) + ( bytes[1] << 16 ) + ( bytes[2] << 8 ) + bytes[3];
+ setData( bytes );
+ }
+
+ /**
+ * clear a flag in a list of flags
+ *
+ * @param flags The list of flags
+ * @param flag The flag to set
+ */
+ /*public static void clearFlag( int flags, KerberosFlag flag )
+ {
+ flags &= ~( 1 << flag.getOrdinal() );
+ }*/
+
+ /**
+ * clear a flag in a list of flags
+ *
+ * @param flag The flag to set
+ */
+ public void clearFlag( KerberosFlag flag )
+ {
+ value &= ~( 1 << flag.getOrdinal() );
+ clearBit( flag.getOrdinal() );
+ }
+
+ /**
+ * clear a flag in a list of flags
+ *
+ * @param flag The flag to set
+ */
+ public void clearFlag( int flag )
+ {
+ value &= ~( 1 << flag );
+ clearBit( flag );
+ }
+
+ /**
+ * @return The hex value for this flag, in its position.
+ * For instance, getting the flag 5 will return 0x0000 0010
+ */
+ public int getHexValue()
+ {
+ return 1 << value;
+ }
+}
Added: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/KerberosFlag.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/KerberosFlag.java?rev=589780&view=auto
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/KerberosFlag.java (added)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/KerberosFlag.java Mon Oct 29 11:14:59 2007
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF 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.apache.directory.server.kerberos.shared.messages.value.flags;
+
+/**
+ * This interface must be implemented by all the inherited Flag classes :
+ * - TicketFlag
+ * - ApOption
+ * - KdcOption
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ *
+ */
+public interface KerberosFlag
+{
+ public int getOrdinal();
+}
Added: directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/KerberosFlags.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/KerberosFlags.java?rev=589780&view=auto
==============================================================================
--- directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/KerberosFlags.java (added)
+++ directory/apacheds/branches/bigbang/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/KerberosFlags.java Mon Oct 29 11:14:59 2007
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF 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.apache.directory.server.kerberos.shared.messages.value.flags;
+
+/**
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ *
+ */
+public interface KerberosFlags
+{
+ public byte[] getBytes();
+ public int getIntValue();
+ public boolean isFlagSet( KerberosFlag flag );
+ public boolean isFlagSet( int flag );
+ public void setFlag( KerberosFlag flag );
+ public void setFlag( int flag );
+ public void clearFlag( KerberosFlag flag );
+ public void clearFlag( int flag );
+}