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/05/24 02:27:07 UTC
svn commit: r541123 [20/25] - in
/directory/apacheds/branches/apacheds-sasl-branch: ./ benchmarks/
bootstrap-extract/ bootstrap-extract/src/ bootstrap-extract/src/main/
bootstrap-extract/src/main/java/ bootstrap-extract/src/main/java/org/
bootstrap-ext...
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/KerberosTime.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/KerberosTime.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/KerberosTime.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/KerberosTime.java Wed May 23 17:26:40 2007
@@ -32,8 +32,11 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$, $Date$
*/
-public class KerberosTime implements Comparable
+public class KerberosTime implements Comparable<KerberosTime>
{
+ /**
+ * Constant for the {@link KerberosTime} "infinity."
+ */
public static final KerberosTime INFINITY = new KerberosTime( Long.MAX_VALUE );
private static final TimeZone UTC_TIME_ZONE = TimeZone.getTimeZone( "UTC" );
@@ -47,24 +50,44 @@
private long kerberosTime;
+ /**
+ * Creates a new instance of KerberosTime.
+ */
public KerberosTime()
{
kerberosTime = System.currentTimeMillis();
}
- public KerberosTime(long time)
+ /**
+ * Creates a new instance of KerberosTime.
+ *
+ * @param time
+ */
+ public KerberosTime( long time )
{
kerberosTime = time;
}
- public KerberosTime(Date time)
+ /**
+ * Creates a new instance of KerberosTime.
+ *
+ * @param time
+ */
+ public KerberosTime( Date time )
{
kerberosTime = time.getTime();
}
-
+
+ /**
+ * Returns the {@link KerberosTime} for a given zulu time.
+ *
+ * @param zuluTime
+ * @return The {@link KerberosTime}.
+ * @throws ParseException
+ */
public static KerberosTime getTime( String zuluTime ) throws ParseException
{
Date date = null;
@@ -75,24 +98,19 @@
return new KerberosTime( date );
}
-
- public int compareTo( Object o )
+
+ public int compareTo( KerberosTime that )
{
final int BEFORE = -1;
final int EQUAL = 0;
final int AFTER = 1;
// this optimization is usually worthwhile, and can always be added
- if ( this == o )
+ if ( this == that )
{
return EQUAL;
}
- // Performing explicit checks for nullity and type are made redundant by
- // the following cast, which will throw NullPointerException and
- // ClassCastException in these respective cases.
- final KerberosTime that = ( KerberosTime ) o;
-
// primitive numbers follow this form
if ( this.kerberosTime < that.kerberosTime )
{
@@ -108,42 +126,81 @@
}
+ /**
+ * Returns the {@link KerberosTime} as a long.
+ *
+ * @return The {@link KerberosTime} as a long.
+ */
public long getTime()
{
return kerberosTime;
}
+ /**
+ * Returns the {@link KerberosTime} as a {@link Date}.
+ *
+ * @return The {@link KerberosTime} as a {@link Date}.
+ */
public Date toDate()
{
return new Date( kerberosTime );
}
+ /**
+ * Returns whether this {@link KerberosTime} is within the given clockskew.
+ *
+ * @param clockSkew
+ * @return true if this {@link KerberosTime} is within the given clockskew.
+ */
public boolean isInClockSkew( long clockSkew )
{
return Math.abs( kerberosTime - System.currentTimeMillis() ) < clockSkew;
}
+ /**
+ * Returns whether this {@link KerberosTime} is greater than a given {@link KerberosTime}.
+ *
+ * @param time
+ * @return true if this {@link KerberosTime} is greater than a given {@link KerberosTime}.
+ */
public boolean greaterThan( KerberosTime time )
{
return kerberosTime > time.kerberosTime;
}
+ /**
+ * Returns whether this {@link KerberosTime} is less than a given {@link KerberosTime}.
+ *
+ * @param time
+ * @return true if this {@link KerberosTime} is less than a given {@link KerberosTime}.
+ */
public boolean lessThan( KerberosTime time )
{
return kerberosTime < time.kerberosTime;
}
+ /**
+ * Returns whether this {@link KerberosTime} is equal to another {@link KerberosTime}.
+ *
+ * @param time
+ * @return true if the two {@link KerberosTime}s are equal.
+ */
public boolean equals( KerberosTime time )
{
return kerberosTime == time.kerberosTime;
}
+ /**
+ * Returns whether this {@link KerberosTime} is zero.
+ *
+ * @return true if this {@link KerberosTime} is zero.
+ */
public boolean isZero()
{
return kerberosTime == 0;
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/KrbCredInfo.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/KrbCredInfo.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/KrbCredInfo.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/KrbCredInfo.java Wed May 23 17:26:40 2007
@@ -42,9 +42,22 @@
private HostAddresses clientAddresses; //optional
- public KrbCredInfo(EncryptionKey key, KerberosPrincipal clientPrincipal, TicketFlags flags, KerberosTime authTime,
+ /**
+ * Creates a new instance of KrbCredInfo.
+ *
+ * @param key
+ * @param clientPrincipal
+ * @param flags
+ * @param authTime
+ * @param startTime
+ * @param endTime
+ * @param renewTill
+ * @param serverPrincipal
+ * @param clientAddresses
+ */
+ public KrbCredInfo( EncryptionKey key, KerberosPrincipal clientPrincipal, TicketFlags flags, KerberosTime authTime,
KerberosTime startTime, KerberosTime endTime, KerberosTime renewTill, KerberosPrincipal serverPrincipal,
- HostAddresses clientAddresses)
+ HostAddresses clientAddresses )
{
this.key = key;
this.clientPrincipal = clientPrincipal;
@@ -58,54 +71,99 @@
}
+ /**
+ * Returns the auth {@link KerberosTime}.
+ *
+ * @return The auth {@link KerberosTime}.
+ */
public KerberosTime getAuthTime()
{
return authTime;
}
+ /**
+ * Returns the client {@link HostAddresses}.
+ *
+ * @return The client {@link HostAddresses}.
+ */
public HostAddresses getClientAddresses()
{
return clientAddresses;
}
+ /**
+ * Returns the end {@link KerberosTime}.
+ *
+ * @return The end {@link KerberosTime}.
+ */
public KerberosTime getEndTime()
{
return endTime;
}
+ /**
+ * Returns the {@link TicketFlags}.
+ *
+ * @return The {@link TicketFlags}.
+ */
public TicketFlags getFlags()
{
return flags;
}
+ /**
+ * Returns the {@link EncryptionKey}.
+ *
+ * @return The {@link EncryptionKey}.
+ */
public EncryptionKey getKey()
{
return key;
}
+ /**
+ * Returns the client {@link KerberosPrincipal}.
+ *
+ * @return The client {@link KerberosPrincipal}.
+ */
public KerberosPrincipal getClientPrincipal()
{
return clientPrincipal;
}
+ /**
+ * Returns the renew till {@link KerberosTime}.
+ *
+ * @return The renew till {@link KerberosTime}.
+ */
public KerberosTime getRenewTill()
{
return renewTill;
}
+ /**
+ * Returns the server {@link KerberosPrincipal}.
+ *
+ * @return The server {@link KerberosPrincipal}.
+ */
public KerberosPrincipal getServerPrincipal()
{
return serverPrincipal;
}
+ /**
+ * Returns the start {@link KerberosTime}.
+ *
+ * @return The start {@link KerberosTime}.
+ */
public KerberosTime getStartTime()
{
return startTime;
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/LastRequest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/LastRequest.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/LastRequest.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/LastRequest.java Wed May 23 17:26:40 2007
@@ -29,18 +29,31 @@
private LastRequestEntry[] entries = new LastRequestEntry[1];
+ /**
+ * Creates a new instance of LastRequest.
+ */
public LastRequest()
{
entries[0] = new LastRequestEntry( LastRequestType.NONE, new KerberosTime() );
}
- public LastRequest(LastRequestEntry[] entries)
+ /**
+ * Creates a new instance of LastRequest.
+ *
+ * @param entries
+ */
+ public LastRequest( LastRequestEntry[] entries )
{
this.entries = entries;
}
+ /**
+ * Returns an array of {@link LastRequestEntry}s.
+ *
+ * @return The array of {@link LastRequestEntry}s.
+ */
public LastRequestEntry[] getEntries()
{
return entries;
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/LastRequestEntry.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/LastRequestEntry.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/LastRequestEntry.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/LastRequestEntry.java Wed May 23 17:26:40 2007
@@ -30,19 +30,35 @@
private KerberosTime lastRequestValue;
- public LastRequestEntry(LastRequestType type, KerberosTime value)
+ /**
+ * Creates a new instance of LastRequestEntry.
+ *
+ * @param type
+ * @param value
+ */
+ public LastRequestEntry( LastRequestType type, KerberosTime value )
{
lastRequestType = type;
lastRequestValue = value;
}
+ /**
+ * Returns the {@link LastRequestType}.
+ *
+ * @return The {@link LastRequestType}.
+ */
public LastRequestType getLastRequestType()
{
return lastRequestType;
}
+ /**
+ * Returns the {@link KerberosTime} of the last request.
+ *
+ * @return The {@link KerberosTime} of the last request.
+ */
public KerberosTime getLastRequestValue()
{
return lastRequestValue;
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/LastRequestType.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/LastRequestType.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/LastRequestType.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/LastRequestType.java Wed May 23 17:26:40 2007
@@ -32,30 +32,79 @@
public final class LastRequestType implements Comparable
{
/**
- * Enumeration elements are constructed once upon class loading.
- * Order of appearance here determines the order of compareTo.
+ * Constant for the "none" last request type.
*/
public static final LastRequestType NONE = new LastRequestType( 0, "none" );
+
+ /**
+ * Constant for the "time of initial ticket" last request type.
+ */
public static final LastRequestType TIME_OF_INITIAL_TGT = new LastRequestType( 1, "time of initial ticket" );
+
+ /**
+ * Constant for the "time of initial request" last request type.
+ */
public static final LastRequestType TIME_OF_INITIAL_REQ = new LastRequestType( 2, "time of initial request" );
+
+ /**
+ * Constant for the "time of newest ticket" last request type.
+ */
public static final LastRequestType TIME_OF_NEWEST_TGT = new LastRequestType( 3, "time of newest ticket" );
+
+ /**
+ * Constant for the "time of last renewal" last request type.
+ */
public static final LastRequestType TIME_OF_LAST_RENEWAL = new LastRequestType( 4, "time of last renewal" );
+
+ /**
+ * Constant for the "time of last request" last request type.
+ */
public static final LastRequestType TIME_OF_LAST_REQ = new LastRequestType( 5, "time of last request" );
+
+ /**
+ * Constant for the "time of password expiration" last request type.
+ */
public static final LastRequestType TIME_OF_PASSWORD_EXP = new LastRequestType( 6, "time of password expiration" );
+ /**
+ * Array for building a List of VALUES.
+ */
+ private static final LastRequestType[] values =
+ { NONE, TIME_OF_INITIAL_TGT, TIME_OF_INITIAL_REQ, TIME_OF_NEWEST_TGT, TIME_OF_LAST_RENEWAL, TIME_OF_LAST_REQ,
+ TIME_OF_PASSWORD_EXP };
- public String toString()
- {
- return name + " (" + ordinal + ")";
- }
+ /**
+ * A List of all the last request type constants.
+ */
+ public static final List VALUES = Collections.unmodifiableList( Arrays.asList( values ) );
+ /**
+ * The name of the checksum type.
+ */
+ private final String name;
- public int compareTo( Object that )
+ /**
+ * The value/code for the checksum type.
+ */
+ private final int ordinal;
+
+
+ /**
+ * Private constructor prevents construction outside of this class.
+ */
+ private LastRequestType( int ordinal, String name )
{
- return ordinal - ( ( LastRequestType ) that ).ordinal;
+ this.ordinal = ordinal;
+ this.name = name;
}
+ /**
+ * Returns the last request type when specified by its ordinal.
+ *
+ * @param type
+ * @return The last request type.
+ */
public static LastRequestType getTypeByOrdinal( int type )
{
for ( int ii = 0; ii < values.length; ii++ )
@@ -70,31 +119,25 @@
}
+ /**
+ * Returns the number associated with this last request type.
+ *
+ * @return The last request type ordinal.
+ */
public int getOrdinal()
{
return ordinal;
}
- /// PRIVATE /////
- private final String name;
- private final int ordinal;
-
- /**
- * Private constructor prevents construction outside of this class.
- */
- private LastRequestType(int ordinal, String name)
+ public int compareTo( Object that )
{
- this.ordinal = ordinal;
- this.name = name;
+ return ordinal - ( ( LastRequestType ) that ).ordinal;
}
- /**
- * These two lines are all that's necessary to export a List of VALUES.
- */
- private static final LastRequestType[] values =
- { NONE, TIME_OF_INITIAL_TGT, TIME_OF_INITIAL_REQ, TIME_OF_NEWEST_TGT, TIME_OF_LAST_RENEWAL, TIME_OF_LAST_REQ,
- TIME_OF_PASSWORD_EXP };
- // VALUES needs to be located here, otherwise illegal forward reference
- public static final List VALUES = Collections.unmodifiableList( Arrays.asList( values ) );
+
+ public String toString()
+ {
+ return name + " (" + ordinal + ")";
+ }
}
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/Options.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/Options.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/Options.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/Options.java Wed May 23 17:26:40 2007
@@ -33,41 +33,66 @@
private int maxSize;
- protected Options(int maxSize)
+ protected Options( int maxSize )
{
this.maxSize = maxSize;
options = new BitSet( maxSize );
}
+ /**
+ * Returns whether the option at a given index matches the option in this {@link Options}.
+ *
+ * @param options
+ * @param option
+ * @return true if two options are the same.
+ */
public boolean match( Options options, int option )
{
return options.get( option ) == this.get( option );
}
+ /**
+ * Returns the value of the option at the given index.
+ *
+ * @param index
+ * @return true if the option at the given index is set.
+ */
public boolean get( int index )
{
return options.get( index );
}
+ /**
+ * Sets the option at a given index.
+ *
+ * @param index
+ */
public void set( int index )
{
options.set( index );
}
+ /**
+ * Clears (sets false) the option at a given index.
+ *
+ * @param index
+ */
public void clear( int index )
{
options.clear( index );
}
- /*
+ /**
* Byte-reversing methods are an anomaly of the BouncyCastle
* DERBitString endianness. Thes methods can be removed if the
* Apache Directory Snickers codecs operate differently.
+ *
+ * @return The raw {@link Options} bytes.
*/
public byte[] getBytes()
{
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PreAuthenticationData.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PreAuthenticationData.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PreAuthenticationData.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PreAuthenticationData.java Wed May 23 17:26:40 2007
@@ -30,19 +30,35 @@
private byte[] dataValue;
- public PreAuthenticationData(PreAuthenticationDataType dataType, byte[] dataValue)
+ /**
+ * Creates a new instance of PreAuthenticationData.
+ *
+ * @param dataType
+ * @param dataValue
+ */
+ public PreAuthenticationData( PreAuthenticationDataType dataType, byte[] dataValue )
{
this.dataType = dataType;
this.dataValue = dataValue;
}
+ /**
+ * Returns the {@link PreAuthenticationDataType}.
+ *
+ * @return The {@link PreAuthenticationDataType}.
+ */
public PreAuthenticationDataType getDataType()
{
return dataType;
}
+ /**
+ * Returns the raw bytes of the {@link PreAuthenticationData}.
+ *
+ * @return The raw bytes of the {@link PreAuthenticationData}.
+ */
public byte[] getDataValue()
{
return dataValue;
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PreAuthenticationDataModifier.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PreAuthenticationDataModifier.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PreAuthenticationDataModifier.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PreAuthenticationDataModifier.java Wed May 23 17:26:40 2007
@@ -30,18 +30,33 @@
private byte[] dataValue;
+ /**
+ * Returns the {@link PreAuthenticationData}.
+ *
+ * @return The {@link PreAuthenticationData}.
+ */
public PreAuthenticationData getPreAuthenticationData()
{
return new PreAuthenticationData( dataType, dataValue );
}
+ /**
+ * Sets the {@link PreAuthenticationDataType}.
+ *
+ * @param dataType
+ */
public void setDataType( PreAuthenticationDataType dataType )
{
this.dataType = dataType;
}
+ /**
+ * Sets the raw bytes of this {@link PreAuthenticationData}.
+ *
+ * @param dataValue
+ */
public void setDataValue( byte[] dataValue )
{
this.dataValue = dataValue;
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PreAuthenticationDataType.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PreAuthenticationDataType.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PreAuthenticationDataType.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PreAuthenticationDataType.java Wed May 23 17:26:40 2007
@@ -32,72 +32,141 @@
public class PreAuthenticationDataType implements Comparable
{
/**
- * Enumeration elements are constructed once upon class loading.
- * Order of appearance here determines the order of compareTo.
+ * Constant for the "null" pre-authentication data type.
*/
public static final PreAuthenticationDataType NULL = new PreAuthenticationDataType( 0, "null" );
- public static final PreAuthenticationDataType PA_TGS_REQ = new PreAuthenticationDataType( 1, "TGS Request." );
+
+ /**
+ * Constant for the "TGS request" pre-authentication data type.
+ */
+ public static final PreAuthenticationDataType PA_TGS_REQ = new PreAuthenticationDataType( 1, "TGS request." );
+
+ /**
+ * Constant for the "encrypted timestamp" pre-authentication data type.
+ */
public static final PreAuthenticationDataType PA_ENC_TIMESTAMP = new PreAuthenticationDataType( 2,
"Encrypted timestamp." );
+
+ /**
+ * Constant for the "password salt" pre-authentication data type.
+ */
public static final PreAuthenticationDataType PA_PW_SALT = new PreAuthenticationDataType( 3, "password salt" );
+
+ /**
+ * Constant for the "enc unix time" pre-authentication data type.
+ */
public static final PreAuthenticationDataType PA_ENC_UNIX_TIME = new PreAuthenticationDataType( 5, "enc unix time" );
+
+ /**
+ * Constant for the "sandia secureid" pre-authentication data type.
+ */
public static final PreAuthenticationDataType PA_SANDIA_SECUREID = new PreAuthenticationDataType( 6,
"sandia secureid" );
+
+ /**
+ * Constant for the "sesame" pre-authentication data type.
+ */
public static final PreAuthenticationDataType PA_SESAME = new PreAuthenticationDataType( 7, "sesame" );
+
+ /**
+ * Constant for the "OSF DCE" pre-authentication data type.
+ */
public static final PreAuthenticationDataType PA_OSF_DCE = new PreAuthenticationDataType( 8, "OSF DCE" );
+
+ /**
+ * Constant for the "cybersafe secureid" pre-authentication data type.
+ */
public static final PreAuthenticationDataType PA_CYBERSAFE_SECUREID = new PreAuthenticationDataType( 9,
"cybersafe secureid" );
+
+ /**
+ * Constant for the "ASF3 salt" pre-authentication data type.
+ */
public static final PreAuthenticationDataType PA_ASF3_SALT = new PreAuthenticationDataType( 10, "ASF3 salt" );
+
+ /**
+ * Constant for the "encryption info" pre-authentication data type.
+ */
public static final PreAuthenticationDataType PA_ENCTYPE_INFO = new PreAuthenticationDataType( 11,
"Encryption info." );
+
+ /**
+ * Constant for the "SAM challenge" pre-authentication data type.
+ */
public static final PreAuthenticationDataType SAM_CHALLENGE = new PreAuthenticationDataType( 12, "SAM challenge." );
+
+ /**
+ * Constant for the "SAM response" pre-authentication data type.
+ */
public static final PreAuthenticationDataType SAM_RESPONSE = new PreAuthenticationDataType( 13, "SAM response." );
+
+ /**
+ * Constant for the "PK as request" pre-authentication data type.
+ */
public static final PreAuthenticationDataType PA_PK_AS_REQ = new PreAuthenticationDataType( 14, "PK as request" );
+
+ /**
+ * Constant for the "PK as response" pre-authentication data type.
+ */
public static final PreAuthenticationDataType PA_PK_AS_REP = new PreAuthenticationDataType( 15, "PK as response" );
+
+ /**
+ * Constant for the "use specified key version" pre-authentication data type.
+ */
public static final PreAuthenticationDataType PA_USE_SPECIFIED_KVNO = new PreAuthenticationDataType( 20,
"use specified key version" );
+
+ /**
+ * Constant for the "SAM redirect" pre-authentication data type.
+ */
public static final PreAuthenticationDataType SAM_REDIRECT = new PreAuthenticationDataType( 21, "SAM redirect." );
+
+ /**
+ * Constant for the "get from typed data" pre-authentication data type.
+ */
public static final PreAuthenticationDataType PA_GET_FROM_TYPED_DATA = new PreAuthenticationDataType( 22,
"Get from typed data" );
- /** Array for building a List of VALUES. */
+ /**
+ * Array for building a List of VALUES.
+ */
private static final PreAuthenticationDataType[] values =
{ NULL, PA_TGS_REQ, PA_ENC_TIMESTAMP, PA_PW_SALT, PA_ENC_UNIX_TIME, PA_SANDIA_SECUREID, PA_SESAME, PA_OSF_DCE,
PA_CYBERSAFE_SECUREID, PA_ASF3_SALT, PA_ENCTYPE_INFO, SAM_CHALLENGE, SAM_RESPONSE, PA_PK_AS_REQ,
PA_PK_AS_REP, PA_USE_SPECIFIED_KVNO, SAM_REDIRECT, PA_GET_FROM_TYPED_DATA };
- /** A list of all the pre-authentication type constants. */
+ /**
+ * A list of all the pre-authentication type constants.
+ */
public static final List VALUES = Collections.unmodifiableList( Arrays.asList( values ) );
- /** The name of the pre-authentication type. */
+ /**
+ * The name of the pre-authentication type.
+ */
private final String name;
- /** The value/code for the pre-authentication type. */
+ /**
+ * The value/code for the pre-authentication type.
+ */
private final int ordinal;
/**
* Private constructor prevents construction outside of this class.
*/
- private PreAuthenticationDataType(int ordinal, String name)
+ private PreAuthenticationDataType( int ordinal, String name )
{
this.ordinal = ordinal;
this.name = name;
}
- public String toString()
- {
- return name + " (" + ordinal + ")";
- }
-
-
- public int compareTo( Object that )
- {
- return ordinal - ( ( PreAuthenticationDataType ) that ).ordinal;
- }
-
-
+ /**
+ * Returns the pre-authentication type when specified by its ordinal.
+ *
+ * @param type
+ * @return The pre-authentication type.
+ */
public static PreAuthenticationDataType getTypeByOrdinal( int type )
{
for ( int ii = 0; ii < values.length; ii++ )
@@ -112,8 +181,25 @@
}
+ /**
+ * Returns the number associated with this pre-authentication type.
+ *
+ * @return The pre-authentication type ordinal.
+ */
public int getOrdinal()
{
return ordinal;
+ }
+
+
+ public int compareTo( Object that )
+ {
+ return ordinal - ( ( PreAuthenticationDataType ) that ).ordinal;
+ }
+
+
+ public String toString()
+ {
+ return name + " (" + ordinal + ")";
}
}
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalName.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalName.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalName.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalName.java Wed May 23 17:26:40 2007
@@ -30,19 +30,35 @@
private int nameType;
- public PrincipalName(String nameComponent, int nameType)
+ /**
+ * Creates a new instance of PrincipalName.
+ *
+ * @param nameComponent
+ * @param nameType
+ */
+ public PrincipalName( String nameComponent, int nameType )
{
this.nameComponent = nameComponent;
this.nameType = nameType;
}
+ /**
+ * Returns the type of the {@link PrincipalName}.
+ *
+ * @return The type of the {@link PrincipalName}.
+ */
public int getNameType()
{
return nameType;
}
+ /**
+ * Returns the name component.
+ *
+ * @return The name component.
+ */
public String getNameComponent()
{
return nameComponent;
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalNameModifier.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalNameModifier.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalNameModifier.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalNameModifier.java Wed May 23 17:26:40 2007
@@ -33,18 +33,23 @@
{
private static final String COMPONENT_SEPARATOR = "/";
- List components = new ArrayList();
+ List<String> components = new ArrayList<String>();
int nameType;
+ /**
+ * Returns the {@link PrincipalName}.
+ *
+ * @return The {@link PrincipalName}.
+ */
public PrincipalName getPrincipalName()
{
StringBuffer sb = new StringBuffer();
- Iterator it = components.iterator();
+ Iterator<String> it = components.iterator();
while ( it.hasNext() )
{
- String component = ( String ) it.next();
+ String component = it.next();
sb.append( component );
if ( it.hasNext() )
@@ -57,12 +62,22 @@
}
+ /**
+ * Sets the type.
+ *
+ * @param type
+ */
public void setType( int type )
{
nameType = type;
}
+ /**
+ * Adds a name component.
+ *
+ * @param name
+ */
public void addName( String name )
{
components.add( name );
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalNameType.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalNameType.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalNameType.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/PrincipalNameType.java Wed May 23 17:26:40 2007
@@ -32,34 +32,83 @@
public final class PrincipalNameType implements Comparable
{
/**
- * Enumeration elements are constructed once upon class loading.
- * Order of appearance here determines the order of compareTo.
+ * Constant for the "unknown name type" principal name type.
*/
public static final PrincipalNameType KRB_NT_UNKNOWN = new PrincipalNameType( 0, "unknown name type" );
+
+ /**
+ * Constant for the "user principal name type" principal name type.
+ */
public static final PrincipalNameType KRB_NT_PRINCIPAL = new PrincipalNameType( 1, "user principal name type" );
+
+ /**
+ * Constant for the "service and other unique instance (krbtgt) name type" principal name type.
+ */
public static final PrincipalNameType KRB_NT_SRV_INST = new PrincipalNameType( 2,
"service and other unique instance (krbtgt) name type" );
+
+ /**
+ * Constant for the "service with host name as instance (telnet, rcommands)" principal name type.
+ */
public static final PrincipalNameType KRB_NT_SRV_HST = new PrincipalNameType( 3,
"service with host name as instance (telnet, rcommands)" );
+
+ /**
+ * Constant for the "service with host name as instance (telnet, rcommands) name type" principal name type.
+ */
public static final PrincipalNameType KRB_NT_SRV_XHST = new PrincipalNameType( 4,
"service with host name as instance (telnet, rcommands) name type" );
+
+ /**
+ * Constant for the "unique ID name type" principal name type.
+ */
public static final PrincipalNameType KRB_NT_UID = new PrincipalNameType( 5, "unique ID name type" );
+
+ /**
+ * Constant for the "nt x500 principal; encoded X.509 Distinguished name [RFC 2253]" principal name type.
+ */
public static final PrincipalNameType KRB_NT_X500_PRINCIPAL = new PrincipalNameType( 6,
"nt x500 principal; encoded X.509 Distinguished name [RFC 2253]" );
+ /**
+ * Array for building a List of VALUES.
+ */
+ private static final PrincipalNameType[] values =
+ { KRB_NT_UNKNOWN, KRB_NT_PRINCIPAL, KRB_NT_SRV_INST, KRB_NT_SRV_HST, KRB_NT_SRV_XHST, KRB_NT_UID,
+ KRB_NT_X500_PRINCIPAL };
- public String toString()
- {
- return name + " (" + ordinal + ")";
- }
+ /**
+ * A List of all the principal name type constants.
+ */
+ public static final List VALUES = Collections.unmodifiableList( Arrays.asList( values ) );
+ /**
+ * The name of the principal name type.
+ */
+ private final String name;
- public int compareTo( Object that )
+ /**
+ * The value/code for the principal name type.
+ */
+ private final int ordinal;
+
+
+ /**
+ * Private constructor prevents construction outside of this class.
+ */
+ private PrincipalNameType( int ordinal, String name )
{
- return ordinal - ( ( PrincipalNameType ) that ).ordinal;
+ this.ordinal = ordinal;
+ this.name = name;
}
+ /**
+ * Returns the principal name type when specified by its ordinal.
+ *
+ * @param type
+ * @return The principal name type.
+ */
public static PrincipalNameType getTypeByOrdinal( int type )
{
for ( int ii = 0; ii < values.length; ii++ )
@@ -74,31 +123,25 @@
}
+ /**
+ * Returns the number associated with this principal name type.
+ *
+ * @return The principal name type ordinal.
+ */
public int getOrdinal()
{
return ordinal;
}
- /// PRIVATE /////
- private final String name;
- private final int ordinal;
-
- /**
- * Private constructor prevents construction outside of this class.
- */
- private PrincipalNameType(int ordinal, String name)
+ public int compareTo( Object that )
{
- this.ordinal = ordinal;
- this.name = name;
+ return ordinal - ( ( PrincipalNameType ) that ).ordinal;
}
- /**
- * These two lines are all that's necessary to export a List of VALUES.
- */
- private static final PrincipalNameType[] values =
- { KRB_NT_UNKNOWN, KRB_NT_PRINCIPAL, KRB_NT_SRV_INST, KRB_NT_SRV_HST, KRB_NT_SRV_XHST, KRB_NT_UID,
- KRB_NT_X500_PRINCIPAL };
- // VALUES needs to be located here, otherwise illegal forward reference
- public static final List VALUES = Collections.unmodifiableList( Arrays.asList( values ) );
+
+ public String toString()
+ {
+ return name + " (" + ordinal + ")";
+ }
}
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/RequestBody.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/RequestBody.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/RequestBody.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/RequestBody.java Wed May 23 17:26:40 2007
@@ -45,9 +45,24 @@
private Ticket[] additionalTickets; //optional
- public RequestBody(KdcOptions kdcOptions, KerberosPrincipal clientPrincipal, KerberosPrincipal serverPrincipal,
+ /**
+ * Creates a new instance of RequestBody.
+ *
+ * @param kdcOptions
+ * @param clientPrincipal
+ * @param serverPrincipal
+ * @param from
+ * @param till
+ * @param rtime
+ * @param nonce
+ * @param eType
+ * @param addresses
+ * @param encAuthorizationData
+ * @param additionalTickets
+ */
+ public RequestBody( KdcOptions kdcOptions, KerberosPrincipal clientPrincipal, KerberosPrincipal serverPrincipal,
KerberosTime from, KerberosTime till, KerberosTime rtime, int nonce, EncryptionType[] eType,
- HostAddresses addresses, EncryptedData encAuthorizationData, Ticket[] additionalTickets)
+ HostAddresses addresses, EncryptedData encAuthorizationData, Ticket[] additionalTickets )
{
this.kdcOptions = kdcOptions;
this.clientPrincipal = clientPrincipal;
@@ -63,66 +78,121 @@
}
+ /**
+ * Returns the additional {@link Ticket}s.
+ *
+ * @return The additional {@link Ticket}s.
+ */
public Ticket[] getAdditionalTickets()
{
return additionalTickets;
}
+ /**
+ * Returns the {@link HostAddresses}.
+ *
+ * @return The {@link HostAddresses}.
+ */
public HostAddresses getAddresses()
{
return addresses;
}
+ /**
+ * Returns the client {@link KerberosPrincipal}.
+ *
+ * @return The client {@link KerberosPrincipal}.
+ */
public KerberosPrincipal getClientPrincipal()
{
return clientPrincipal;
}
+ /**
+ * Returns the server {@link KerberosPrincipal}.
+ *
+ * @return The server {@link KerberosPrincipal}.
+ */
public KerberosPrincipal getServerPrincipal()
{
return serverPrincipal;
}
+ /**
+ * Returns the encrypted {@link AuthorizationData} as {@link EncryptedData}.
+ *
+ * @return The encrypted {@link AuthorizationData} as {@link EncryptedData}.
+ */
public EncryptedData getEncAuthorizationData()
{
return encAuthorizationData;
}
+ /**
+ * Returns the requested {@link EncryptionType}s.
+ *
+ * @return The requested {@link EncryptionType}s.
+ */
public EncryptionType[] getEType()
{
return eType;
}
+ /**
+ * Returns the from {@link KerberosTime}.
+ *
+ * @return The from {@link KerberosTime}.
+ */
public KerberosTime getFrom()
{
return from;
}
+ /**
+ * Returns the {@link KdcOptions}.
+ *
+ * @return The {@link KdcOptions}.
+ */
public KdcOptions getKdcOptions()
{
return kdcOptions;
}
+ /**
+ * Returns the nonce.
+ *
+ * @return The nonce.
+ */
public int getNonce()
{
return nonce;
}
+ /**
+ * Returns the "R" {@link KerberosTime}.
+ *
+ * @return The "R" {@link KerberosTime}.
+ */
public KerberosTime getRtime()
{
return rtime;
}
+ /**
+ * Returns the till {@link KerberosTime}.
+ *
+ * @return The till {@link KerberosTime}.
+ */
public KerberosTime getTill()
{
return till;
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/RequestBodyModifier.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/RequestBodyModifier.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/RequestBodyModifier.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/RequestBodyModifier.java Wed May 23 17:26:40 2007
@@ -45,6 +45,11 @@
private Ticket[] additionalTickets; //optional
+ /**
+ * Returns the {@link RequestBody}.
+ *
+ * @return The {@link RequestBody}.
+ */
public RequestBody getRequestBody()
{
KerberosPrincipal clientPrincipal = clientModifier.getKerberosPrincipal();
@@ -55,18 +60,33 @@
}
+ /**
+ * Sets the client {@link PrincipalName}.
+ *
+ * @param clientName
+ */
public void setClientName( PrincipalName clientName )
{
clientModifier.setPrincipalName( clientName );
}
+ /**
+ * Sets the server {@link PrincipalName}.
+ *
+ * @param serverName
+ */
public void setServerName( PrincipalName serverName )
{
serverModifier.setPrincipalName( serverName );
}
+ /**
+ * Sets the realm.
+ *
+ * @param realm
+ */
public void setRealm( String realm )
{
clientModifier.setRealm( realm );
@@ -74,54 +94,99 @@
}
+ /**
+ * Sets additional {@link Ticket}s.
+ *
+ * @param tickets
+ */
public void setAdditionalTickets( Ticket[] tickets )
{
additionalTickets = tickets;
}
+ /**
+ * Sets the {@link HostAddresses}.
+ *
+ * @param addresses
+ */
public void setAddresses( HostAddresses addresses )
{
this.addresses = addresses;
}
+ /**
+ * Sets the encrypted authorization data.
+ *
+ * @param authorizationData
+ */
public void setEncAuthorizationData( EncryptedData authorizationData )
{
encAuthorizationData = authorizationData;
}
+ /**
+ * Sets the requested {@link EncryptionType}s.
+ *
+ * @param type
+ */
public void setEType( EncryptionType[] type )
{
eType = type;
}
+ /**
+ * Sets the from {@link KerberosTime}.
+ *
+ * @param from
+ */
public void setFrom( KerberosTime from )
{
this.from = from;
}
+ /**
+ * Sets the {@link KdcOptions}.
+ *
+ * @param options
+ */
public void setKdcOptions( KdcOptions options )
{
kdcOptions = options;
}
+ /**
+ * Sets the nonce.
+ *
+ * @param nonce
+ */
public void setNonce( int nonce )
{
this.nonce = nonce;
}
+ /**
+ * Sets the "R" {@link KerberosTime}.
+ *
+ * @param rtime
+ */
public void setRtime( KerberosTime rtime )
{
this.rtime = rtime;
}
+ /**
+ * Sets the till {@link KerberosTime}.
+ *
+ * @param till
+ */
public void setTill( KerberosTime till )
{
this.till = till;
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/TicketFlags.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/TicketFlags.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/TicketFlags.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/TicketFlags.java Wed May 23 17:26:40 2007
@@ -26,36 +26,78 @@
*/
public class TicketFlags extends Options
{
- // Ticket flag - reserved
+ /**
+ * Ticket flag - reserved
+ */
public static final int RESERVED = 0;
- // Ticket flag - forwardable
+
+ /**
+ * Ticket flag - forwardable
+ */
public static final int FORWARDABLE = 1;
- // Ticket flag - forwarded
+
+ /**
+ * Ticket flag - forwarded
+ */
public static final int FORWARDED = 2;
- // Ticket flag - proxiable
+
+ /**
+ * Ticket flag - proxiable
+ */
public static final int PROXIABLE = 3;
- // Ticket flag - proxy
+
+ /**
+ * Ticket flag - proxy
+ */
public static final int PROXY = 4;
- // Ticket flag - may be postdated
+
+ /**
+ * Ticket flag - may be postdated
+ */
public static final int MAY_POSTDATE = 5;
- // Ticket flag - postdated
+
+ /**
+ * Ticket flag - postdated
+ */
public static final int POSTDATED = 6;
- // Ticket flag - invalid
+ /**
+ * Ticket flag - invalid
+ */
public static final int INVALID = 7;
- // Ticket flag - renewable
+
+ /**
+ * Ticket flag - renewable
+ */
public static final int RENEWABLE = 8;
- // Ticket flag - initial
+
+ /**
+ * Ticket flag - initial
+ */
public static final int INITIAL = 9;
- // Ticket flag - pre-authentication
+
+ /**
+ * Ticket flag - pre-authentication
+ */
public static final int PRE_AUTHENT = 10;
- // Ticket flag - hardware authentication
+
+ /**
+ * Ticket flag - hardware authentication
+ */
public static final int HW_AUTHENT = 11;
- // Ticket flag - transitedEncoding policy checked
+
+ /**
+ * Ticket flag - transitedEncoding policy checked
+ */
public static final int TRANSITED_POLICY_CHECKED = 12;
- // Ticket flag - OK as delegate
+
+ /**
+ * Ticket flag - OK as delegate
+ */
public static final int OK_AS_DELEGATE = 13;
- // Ticket flag - maximum value
+ /**
+ * Ticket flag - maximum value
+ */
public static final int MAX_VALUE = 32;
@@ -68,7 +110,12 @@
}
- public TicketFlags(byte[] options)
+ /**
+ * Creates a new instance of TicketFlags.
+ *
+ * @param options
+ */
+ public TicketFlags( byte[] options )
{
super( MAX_VALUE );
setBytes( options );
@@ -76,7 +123,7 @@
/**
- * Converts the object to a printable string
+ * Converts the object to a printable string.
*/
public String toString()
{
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/TransitedEncoding.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/TransitedEncoding.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/TransitedEncoding.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/TransitedEncoding.java Wed May 23 17:26:40 2007
@@ -30,6 +30,9 @@
private byte[] contents;
+ /**
+ * Creates a new instance of TransitedEncoding.
+ */
public TransitedEncoding()
{
type = TransitedEncodingType.NULL;
@@ -37,19 +40,35 @@
}
- public TransitedEncoding(TransitedEncodingType type, byte[] contents)
+ /**
+ * Creates a new instance of TransitedEncoding.
+ *
+ * @param type
+ * @param contents
+ */
+ public TransitedEncoding( TransitedEncodingType type, byte[] contents )
{
this.type = type;
this.contents = contents;
}
+ /**
+ * Returns the contents.
+ *
+ * @return The contents.
+ */
public byte[] getContents()
{
return contents;
}
+ /**
+ * Returns the {@link TransitedEncodingType}.
+ *
+ * @return The {@link TransitedEncodingType}.
+ */
public TransitedEncodingType getType()
{
return type;
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/TransitedEncodingType.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/TransitedEncodingType.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/TransitedEncodingType.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/TransitedEncodingType.java Wed May 23 17:26:40 2007
@@ -32,26 +32,54 @@
public final class TransitedEncodingType implements Comparable
{
/**
- * Enumeration elements are constructed once upon class loading.
- * Order of appearance here determines the order of compareTo.
+ * Constant for the "null" transited encoding type.
*/
public static final TransitedEncodingType NULL = new TransitedEncodingType( 0, "null" );
+
+ /**
+ * Constant for the "Domain X500 compress" transited encoding type.
+ */
public static final TransitedEncodingType DOMAIN_X500_COMPRESS = new TransitedEncodingType( 1,
"Domain X500 compress" );
+ /**
+ * Array for building a List of VALUES.
+ */
+ private static final TransitedEncodingType[] values =
+ { NULL, DOMAIN_X500_COMPRESS };
- public String toString()
- {
- return name + " (" + ordinal + ")";
- }
+ /**
+ * A List of all the transited encoding type constants.
+ */
+ public static final List VALUES = Collections.unmodifiableList( Arrays.asList( values ) );
+ /**
+ * The name of the transited encoding type.
+ */
+ private final String name;
- public int compareTo( Object that )
+ /**
+ * The value/code for the transited encoding type.
+ */
+ private final int ordinal;
+
+
+ /**
+ * Private constructor prevents construction outside of this class.
+ */
+ private TransitedEncodingType( int ordinal, String name )
{
- return ordinal - ( ( TransitedEncodingType ) that ).ordinal;
+ this.ordinal = ordinal;
+ this.name = name;
}
+ /**
+ * Returns the transited encoding type when specified by its ordinal.
+ *
+ * @param type
+ * @return The transited encoding type.
+ */
public static TransitedEncodingType getTypeByOrdinal( int type )
{
for ( int ii = 0; ii < values.length; ii++ )
@@ -66,30 +94,25 @@
}
+ /**
+ * Returns the number associated with this transited encoding type.
+ *
+ * @return The transited encoding type ordinal.
+ */
public int getOrdinal()
{
return ordinal;
}
- /// PRIVATE /////
- private final String name;
- private final int ordinal;
-
- /**
- * Private constructor prevents construction outside of this class.
- */
- private TransitedEncodingType(int ordinal, String name)
+ public int compareTo( Object that )
{
- this.ordinal = ordinal;
- this.name = name;
+ return ordinal - ( ( TransitedEncodingType ) that ).ordinal;
}
- /**
- * These two lines are all that's necessary to export a List of VALUES.
- */
- private static final TransitedEncodingType[] values =
- { NULL, DOMAIN_X500_COMPRESS };
- // VALUES needs to be located here, otherwise illegal forward reference
- public static final List VALUES = Collections.unmodifiableList( Arrays.asList( values ) );
+
+ public String toString()
+ {
+ return name + " (" + ordinal + ")";
+ }
}
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/replay/InMemoryReplayCache.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/replay/InMemoryReplayCache.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/replay/InMemoryReplayCache.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/replay/InMemoryReplayCache.java Wed May 23 17:26:40 2007
@@ -38,7 +38,7 @@
{
private static final long TWO_WEEKS = 1000 * 60 * 60 * 24 * 14;
- private List list = new ArrayList();
+ private List<ReplayCacheEntry> list = new ArrayList<ReplayCacheEntry>();
public synchronized boolean isReplay( KerberosTime clientTime, KerberosPrincipal clientPrincipal )
@@ -90,19 +90,38 @@
private KerberosPrincipal clientPrincipal;
- public ReplayCacheEntry(KerberosTime time, KerberosPrincipal principal)
+ /**
+ * Creates a new instance of ReplayCacheEntry.
+ *
+ * @param time
+ * @param principal
+ */
+ public ReplayCacheEntry( KerberosTime time, KerberosPrincipal principal )
{
clientTime = time;
clientPrincipal = principal;
}
+ /**
+ * Returns whether this {@link ReplayCacheEntry} is equal another {@link ReplayCacheEntry}.
+ * {@link ReplayCacheEntry}'s are equal when the client time and the client principal are equal.
+ *
+ * @param other
+ * @return true if the ReplayCacheEntry's are equal.
+ */
public boolean equals( ReplayCacheEntry other )
{
return clientTime.equals( other.clientTime ) && clientPrincipal.equals( other.clientPrincipal );
}
+ /**
+ * Return whether this {@link ReplayCacheEntry} is older than a given time.
+ *
+ * @param time
+ * @return true if the {@link ReplayCacheEntry} is older.
+ */
public boolean olderThan( KerberosTime time )
{
return time.greaterThan( clientTime );
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/replay/ReplayCache.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/replay/ReplayCache.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/replay/ReplayCache.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/replay/ReplayCache.java Wed May 23 17:26:40 2007
@@ -31,8 +31,21 @@
*/
public interface ReplayCache
{
+ /**
+ * Returns whether a request is a replay, based on the client time and client principal.
+ *
+ * @param clientTime
+ * @param clientPrincipal
+ * @return true if the request is a replay.
+ */
boolean isReplay( KerberosTime clientTime, KerberosPrincipal clientPrincipal );
+ /**
+ * Saves the client time and client principal to the replay cache.
+ *
+ * @param clientTime
+ * @param clientPrincipal
+ */
void save( KerberosTime clientTime, KerberosPrincipal clientPrincipal );
}
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/service/GetPrincipalStoreEntry.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/service/GetPrincipalStoreEntry.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/service/GetPrincipalStoreEntry.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/service/GetPrincipalStoreEntry.java Wed May 23 17:26:40 2007
@@ -37,6 +37,17 @@
{
private String contextKey = "context";
+
+ /**
+ * Get a PrincipalStoreEntry given a principal. The ErrorType is used to indicate
+ * whether any resulting error pertains to a server or client.
+ *
+ * @param principal
+ * @param store
+ * @param errorType
+ * @return The PrincipalStoreEntry
+ * @throws Exception
+ */
public PrincipalStoreEntry getEntry( KerberosPrincipal principal, PrincipalStore store, ErrorType errorType )
throws Exception
{
@@ -51,7 +62,7 @@
throw new KerberosException( errorType );
}
- if ( entry == null || entry.getEncryptionKey() == null )
+ if ( entry == null || entry.getKeyMap().isEmpty() )
{
throw new KerberosException( errorType );
}
@@ -60,7 +71,7 @@
}
- public String getContextKey()
+ protected String getContextKey()
{
return ( this.contextKey );
}
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/service/VerifyAuthHeader.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/service/VerifyAuthHeader.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/service/VerifyAuthHeader.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/service/VerifyAuthHeader.java Wed May 23 17:26:40 2007
@@ -22,6 +22,8 @@
import java.net.InetAddress;
+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.exceptions.ErrorType;
import org.apache.directory.server.kerberos.shared.exceptions.KerberosException;
import org.apache.directory.server.kerberos.shared.messages.ApplicationRequest;
@@ -48,10 +50,25 @@
{
private String contextKey = "context";
- // RFC 1510 A.10. KRB_AP_REQ verification
+
+ /**
+ * Verifies an AuthHeader using guidelines from RFC 1510 section A.10., "KRB_AP_REQ verification."
+ *
+ * @param authHeader
+ * @param ticket
+ * @param serverKey
+ * @param clockSkew
+ * @param replayCache
+ * @param emptyAddressesAllowed
+ * @param clientAddress
+ * @param lockBox
+ * @param authenticatorKeyUsage
+ * @return The authenticator.
+ * @throws KerberosException
+ */
public Authenticator verifyAuthHeader( ApplicationRequest authHeader, Ticket ticket, EncryptionKey serverKey,
long clockSkew, ReplayCache replayCache, boolean emptyAddressesAllowed, InetAddress clientAddress,
- LockBox lockBox ) throws KerberosException
+ CipherTextHandler lockBox, KeyUsage authenticatorKeyUsage ) throws KerberosException
{
if ( authHeader.getProtocolVersionNumber() != 5 )
{
@@ -90,11 +107,12 @@
throw new KerberosException( ErrorType.KRB_AP_ERR_NOKEY );
}
- EncTicketPart encPart = ( EncTicketPart ) lockBox.unseal( EncTicketPart.class, ticketKey, ticket.getEncPart() );
+ EncTicketPart encPart = ( EncTicketPart ) lockBox.unseal( EncTicketPart.class, ticketKey, ticket.getEncPart(),
+ KeyUsage.NUMBER2 );
ticket.setEncTicketPart( encPart );
Authenticator authenticator = ( Authenticator ) lockBox.unseal( Authenticator.class, ticket.getSessionKey(),
- authHeader.getEncPart() );
+ authHeader.getEncPart(), authenticatorKeyUsage );
if ( !authenticator.getClientPrincipal().getName().equals( ticket.getClientPrincipal().getName() ) )
{
@@ -147,7 +165,7 @@
}
- public String getContextKey()
+ protected String getContextKey()
{
return ( this.contextKey );
}
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/service/VerifyTicket.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/service/VerifyTicket.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/service/VerifyTicket.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/service/VerifyTicket.java Wed May 23 17:26:40 2007
@@ -38,6 +38,15 @@
{
private String contextKey = "context";
+
+ /**
+ * Verifies a Ticket given a realm and the server principal.
+ *
+ * @param ticket
+ * @param primaryRealm
+ * @param serverPrincipal
+ * @throws Exception
+ */
public void verifyTicket( Ticket ticket, String primaryRealm, KerberosPrincipal serverPrincipal ) throws Exception
{
if ( !ticket.getRealm().equals( primaryRealm ) && !ticket.getServerPrincipal().equals( serverPrincipal ) )
@@ -47,7 +56,7 @@
}
- public String getContextKey()
+ protected String getContextKey()
{
return ( this.contextKey );
}
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/JndiPrincipalStoreImpl.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/JndiPrincipalStoreImpl.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/JndiPrincipalStoreImpl.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/JndiPrincipalStoreImpl.java Wed May 23 17:26:40 2007
@@ -21,7 +21,6 @@
import javax.naming.spi.InitialContextFactory;
-import javax.security.auth.kerberos.KerberosKey;
import javax.security.auth.kerberos.KerberosPrincipal;
import org.apache.directory.server.protocol.shared.ServiceConfiguration;
@@ -47,7 +46,13 @@
private PrincipalStore store;
- public JndiPrincipalStoreImpl(ServiceConfiguration config, InitialContextFactory factory)
+ /**
+ * Creates a new instance of JndiPrincipalStoreImpl.
+ *
+ * @param config
+ * @param factory
+ */
+ public JndiPrincipalStoreImpl( ServiceConfiguration config, InitialContextFactory factory )
{
this.config = config;
this.factory = factory;
@@ -80,9 +85,9 @@
}
- public String changePassword( KerberosPrincipal principal, KerberosKey newKey ) throws Exception
+ public String changePassword( KerberosPrincipal principal, String newPassword ) throws Exception
{
- return store.changePassword( principal, newKey );
+ return store.changePassword( principal, newPassword );
}
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/KerberosCatalog.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/KerberosCatalog.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/KerberosCatalog.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/KerberosCatalog.java Wed May 23 17:26:40 2007
@@ -37,7 +37,12 @@
private Map map;
- public KerberosCatalog(Map map)
+ /**
+ * Creates a new instance of KerberosCatalog.
+ *
+ * @param map
+ */
+ public KerberosCatalog( Map map )
{
this.map = map;
}
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/MultiBaseSearch.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/MultiBaseSearch.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/MultiBaseSearch.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/MultiBaseSearch.java Wed May 23 17:26:40 2007
@@ -28,7 +28,6 @@
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.spi.InitialContextFactory;
-import javax.security.auth.kerberos.KerberosKey;
import javax.security.auth.kerberos.KerberosPrincipal;
import org.apache.directory.server.core.configuration.ConfigurationException;
@@ -54,16 +53,16 @@
class MultiBaseSearch implements PrincipalStore
{
private InitialContextFactory factory;
- private Hashtable env;
+ private Hashtable<String, Object> env;
private Catalog catalog;
- MultiBaseSearch(ServiceConfiguration config, InitialContextFactory factory)
+ MultiBaseSearch( ServiceConfiguration config, InitialContextFactory factory )
{
this.factory = factory;
- env = new Hashtable( config.toJndiEnvironment() );
+ env = new Hashtable<String, Object>( config.toJndiEnvironment() );
env.put( Context.INITIAL_CONTEXT_FACTORY, config.getInitialContextFactory() );
env.put( Context.PROVIDER_URL, config.getCatalogBaseDn() );
@@ -148,14 +147,14 @@
}
- public String changePassword( KerberosPrincipal principal, KerberosKey newKey ) throws Exception
+ public String changePassword( KerberosPrincipal principal, String newPassword ) throws Exception
{
env.put( Context.PROVIDER_URL, catalog.getBaseDn( principal.getRealm() ) );
try
{
DirContext ctx = ( DirContext ) factory.getInitialContext( env );
- return ( String ) execute( ctx, new ChangePassword( principal, newKey ) );
+ return ( String ) execute( ctx, new ChangePassword( principal, newPassword ) );
}
catch ( NamingException ne )
{
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/PrincipalStore.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/PrincipalStore.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/PrincipalStore.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/PrincipalStore.java Wed May 23 17:26:40 2007
@@ -20,7 +20,6 @@
package org.apache.directory.server.kerberos.shared.store;
-import javax.security.auth.kerberos.KerberosKey;
import javax.security.auth.kerberos.KerberosPrincipal;
@@ -32,17 +31,53 @@
*/
public interface PrincipalStore
{
+ /**
+ * Add a principal.
+ *
+ * @param entry
+ * @return The name of the principal being added.
+ * @throws Exception
+ */
public String addPrincipal( PrincipalStoreEntry entry ) throws Exception;
- public String changePassword( KerberosPrincipal principal, KerberosKey newKey ) throws Exception;
-
-
+ /**
+ * Change a principal's password.
+ *
+ * @param principal
+ * @param newPassword
+ * @return The name of the principal whose password is being changed.
+ * @throws Exception
+ */
+ public String changePassword( KerberosPrincipal principal, String newPassword ) throws Exception;
+
+
+ /**
+ * Delete a principal.
+ *
+ * @param principal
+ * @return The name of the principal being deleted.
+ * @throws Exception
+ */
public String deletePrincipal( KerberosPrincipal principal ) throws Exception;
+ /**
+ * Get all principals for a given realm.
+ *
+ * @param realm
+ * @return An array of {@link PrincipalStoreEntry}'s.
+ * @throws Exception
+ */
public PrincipalStoreEntry[] getAllPrincipals( String realm ) throws Exception;
+ /**
+ * Get a {@link PrincipalStoreEntry} given a Kerberos principal.
+ *
+ * @param principal
+ * @return The {@link PrincipalStoreEntry} for the given Kerberos principal.
+ * @throws Exception
+ */
public PrincipalStoreEntry getPrincipal( KerberosPrincipal principal ) throws Exception;
}
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/PrincipalStoreEntry.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/PrincipalStoreEntry.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/PrincipalStoreEntry.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/PrincipalStoreEntry.java Wed May 23 17:26:40 2007
@@ -20,6 +20,8 @@
package org.apache.directory.server.kerberos.shared.store;
+import java.util.Map;
+
import javax.security.auth.kerberos.KerberosPrincipal;
import org.apache.directory.server.kerberos.shared.crypto.encryption.EncryptionType;
@@ -50,16 +52,18 @@
private int maxRenew;
private int kdcFlags;
private SamType samType;
- private EncryptionKey key;
+
private boolean disabled;
private boolean lockedOut;
private KerberosTime expiration;
+ private Map<EncryptionType, EncryptionKey> keyMap;
+
- PrincipalStoreEntry(String commonName, String userId, KerberosPrincipal principal, int keyVersionNumber,
+ PrincipalStoreEntry( String commonName, String userId, KerberosPrincipal principal, int keyVersionNumber,
KerberosTime validStart, KerberosTime validEnd, KerberosTime passwordEnd, int maxLife, int maxRenew,
- int kdcFlags, int keyType, byte[] key, String realmName, SamType samType, boolean disabled,
- boolean lockedOut, KerberosTime expiration )
+ int kdcFlags, int keyType, Map<EncryptionType, EncryptionKey> keyMap, String realmName, SamType samType,
+ boolean disabled, boolean lockedOut, KerberosTime expiration )
{
this.commonName = commonName;
this.userId = userId;
@@ -75,94 +79,169 @@
this.lockedOut = lockedOut;
this.expiration = expiration;
this.samType = samType;
- this.key = new EncryptionKey( EncryptionType.getTypeByOrdinal( keyType ), key, keyVersionNumber );
+ this.keyMap = keyMap;
}
-
+
+ /**
+ * Returns whether this account is disabled.
+ *
+ * @return Whether this account is disabled.
+ */
public boolean isDisabled()
{
return disabled;
}
-
-
+
+
+ /**
+ * Returns whether this account is locked-out.
+ *
+ * @return Whether this account is locked-out.
+ */
public boolean isLockedOut()
{
return lockedOut;
}
-
-
+
+
+ /**
+ * Returns the expiration time.
+ *
+ * @return The expiration time.
+ */
public KerberosTime getExpiration()
{
return expiration;
}
-
+
+ /**
+ * Returns the common name.
+ *
+ * @return The common name.
+ */
public String getCommonName()
{
return commonName;
}
+ /**
+ * Returns the user ID.
+ *
+ * @return The user ID.
+ */
public String getUserId()
{
return userId;
}
- public EncryptionKey getEncryptionKey()
- {
- return key;
+ /**
+ * Returns the key map.
+ *
+ * @return The key map.
+ */
+ public Map<EncryptionType, EncryptionKey> getKeyMap()
+ {
+ return keyMap;
}
+ /**
+ * Returns the KDC flags.
+ *
+ * @return The KDC flags.
+ */
public int getKDCFlags()
{
return kdcFlags;
}
+ /**
+ * Returns the max life.
+ *
+ * @return The max life.
+ */
public int getMaxLife()
{
return maxLife;
}
+ /**
+ * Returns the maximum renew time.
+ *
+ * @return The maximum renew time.
+ */
public int getMaxRenew()
{
return maxRenew;
}
+ /**
+ * Returns the expiration time for the password.
+ *
+ * @return The expiration time for the password.
+ */
public KerberosTime getPasswordEnd()
{
return passwordEnd;
}
+ /**
+ * Returns the principal.
+ *
+ * @return The principal.
+ */
public KerberosPrincipal getPrincipal()
{
return principal;
}
+ /**
+ * Returns the realm name.
+ *
+ * @return The realm name.
+ */
public String getRealmName()
{
return realmName;
}
+ /**
+ * Returns the end of validity.
+ *
+ * @return The end of validity.
+ */
public KerberosTime getValidEnd()
{
return validEnd;
}
+ /**
+ * Returns the start of validity.
+ *
+ * @return The start of validity.
+ */
public KerberosTime getValidStart()
{
return validStart;
}
+ /**
+ * Returns the single-use authentication (SAM) type.
+ *
+ * @return The single-use authentication (SAM) type.
+ */
public SamType getSamType()
{
return samType;
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/PrincipalStoreEntryModifier.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/PrincipalStoreEntryModifier.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/PrincipalStoreEntryModifier.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/PrincipalStoreEntryModifier.java Wed May 23 17:26:40 2007
@@ -20,8 +20,17 @@
package org.apache.directory.server.kerberos.shared.store;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.naming.NamingException;
+import javax.naming.directory.Attribute;
import javax.security.auth.kerberos.KerberosPrincipal;
+import org.apache.directory.server.kerberos.shared.crypto.encryption.EncryptionType;
+import org.apache.directory.server.kerberos.shared.io.decoder.EncryptionKeyDecoder;
+import org.apache.directory.server.kerberos.shared.messages.value.EncryptionKey;
import org.apache.directory.server.kerberos.shared.messages.value.KerberosTime;
import org.apache.directory.server.kerberos.shared.messages.value.SamType;
@@ -52,118 +61,242 @@
private int kdcFlags;
private int encryptionType;
private SamType samType;
- private byte[] key;
+
private boolean disabled = false;
private boolean lockedOut = false;
private KerberosTime expiration = KerberosTime.INFINITY;
+ private Map<EncryptionType, EncryptionKey> keyMap;
+
+ /**
+ * Returns the {@link PrincipalStoreEntry}.
+ *
+ * @return The {@link PrincipalStoreEntry}.
+ */
public PrincipalStoreEntry getEntry()
{
return new PrincipalStoreEntry( commonName, userId, principal, keyVersionNumber, validStart, validEnd,
- passwordEnd, maxLife, maxRenew, kdcFlags, encryptionType, key, realmName, samType,
- disabled, lockedOut, expiration );
+ passwordEnd, maxLife, maxRenew, kdcFlags, encryptionType, keyMap, realmName, samType, disabled, lockedOut,
+ expiration );
}
-
+
+ /**
+ * Sets whether the account is disabled.
+ *
+ * @param disabled
+ */
public void setDisabled( boolean disabled )
{
this.disabled = disabled;
}
-
-
+
+
+ /**
+ * Sets whether the account is locked-out.
+ *
+ * @param lockedOut
+ */
public void setLockedOut( boolean lockedOut )
{
this.lockedOut = lockedOut;
}
-
-
+
+
+ /**
+ * Sets the expiration time.
+ *
+ * @param expiration
+ */
public void setExpiration( KerberosTime expiration )
{
this.expiration = expiration;
}
-
+
+ /**
+ * Sets the common name (cn).
+ *
+ * @param commonName
+ */
public void setCommonName( String commonName )
{
this.commonName = commonName;
}
+ /**
+ * Sets the user ID.
+ *
+ * @param userId
+ */
public void setUserId( String userId )
{
this.userId = userId;
}
+ /**
+ * Sets the encryption type.
+ *
+ * @param encryptionType
+ */
public void setEncryptionType( int encryptionType )
{
this.encryptionType = encryptionType;
}
+ /**
+ * Sets the KDC flags.
+ *
+ * @param kdcFlags
+ */
public void setKDCFlags( int kdcFlags )
{
this.kdcFlags = kdcFlags;
}
- public void setKey( byte[] key )
- {
- this.key = key;
+ /**
+ * Sets the key map.
+ *
+ * @param keyMap
+ */
+ public void setKeyMap( Map<EncryptionType, EncryptionKey> keyMap )
+ {
+ this.keyMap = keyMap;
}
+ /**
+ * Sets the key version number.
+ *
+ * @param keyVersionNumber
+ */
public void setKeyVersionNumber( int keyVersionNumber )
{
this.keyVersionNumber = keyVersionNumber;
}
+ /**
+ * Sets the ticket maximum life time.
+ *
+ * @param maxLife
+ */
public void setMaxLife( int maxLife )
{
this.maxLife = maxLife;
}
+ /**
+ * Sets the ticket maximum renew time.
+ *
+ * @param maxRenew
+ */
public void setMaxRenew( int maxRenew )
{
this.maxRenew = maxRenew;
}
+ /**
+ * Sets the end-of-life for the password.
+ *
+ * @param passwordEnd
+ */
public void setPasswordEnd( KerberosTime passwordEnd )
{
this.passwordEnd = passwordEnd;
}
+ /**
+ * Sets the principal.
+ *
+ * @param principal
+ */
public void setPrincipal( KerberosPrincipal principal )
{
this.principal = principal;
}
+ /**
+ * Sets the realm.
+ *
+ * @param realmName
+ */
public void setRealmName( String realmName )
{
this.realmName = realmName;
}
+ /**
+ * Sets the end of validity.
+ *
+ * @param validEnd
+ */
public void setValidEnd( KerberosTime validEnd )
{
this.validEnd = validEnd;
}
+ /**
+ * Sets the start of validity.
+ *
+ * @param validStart
+ */
public void setValidStart( KerberosTime validStart )
{
this.validStart = validStart;
}
+ /**
+ * Sets the single-use authentication (SAM) type.
+ *
+ * @param samType
+ */
public void setSamType( SamType samType )
{
this.samType = samType;
+ }
+
+
+ /**
+ * Converts the ASN.1 encoded key set to a map of encryption types to encryption keys.
+ *
+ * @param krb5key
+ * @return The map of encryption types to encryption keys.
+ * @throws NamingException
+ * @throws IOException
+ */
+ public Map<EncryptionType, EncryptionKey> reconstituteKeyMap( Attribute krb5key ) throws NamingException,
+ IOException
+ {
+ Map<EncryptionType, EncryptionKey> map = new HashMap<EncryptionType, EncryptionKey>();
+
+ for ( int ii = 0; ii < krb5key.size(); ii++ )
+ {
+ Object key = krb5key.get( ii );
+
+ if ( key instanceof String )
+ {
+ throw new NamingException(
+ "JNDI should not return a string for the Kerberos key: JNDI property java.naming.ldap.attributes.binary must include the krb5key attribute." );
+ }
+
+ byte[] encryptionKeyBytes = ( byte[] ) key;
+ EncryptionKey encryptionKey = EncryptionKeyDecoder.decode( encryptionKeyBytes );
+ map.put( encryptionKey.getKeyType(), encryptionKey );
+ }
+
+ return map;
}
}
Modified: directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/SingleBaseSearch.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/SingleBaseSearch.java?view=diff&rev=541123&r1=541122&r2=541123
==============================================================================
--- directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/SingleBaseSearch.java (original)
+++ directory/apacheds/branches/apacheds-sasl-branch/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/SingleBaseSearch.java Wed May 23 17:26:40 2007
@@ -27,7 +27,6 @@
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.spi.InitialContextFactory;
-import javax.security.auth.kerberos.KerberosKey;
import javax.security.auth.kerberos.KerberosPrincipal;
import org.apache.directory.server.core.configuration.ConfigurationException;
@@ -91,9 +90,9 @@
}
- public String changePassword( KerberosPrincipal principal, KerberosKey newKey ) throws Exception
+ public String changePassword( KerberosPrincipal principal, String newPassword ) throws Exception
{
- return ( String ) execute( new ChangePassword( principal, newKey ) );
+ return ( String ) execute( new ChangePassword( principal, newPassword ) );
}