Return-Path: Delivered-To: apmail-directory-commits-archive@www.apache.org Received: (qmail 72972 invoked from network); 25 Nov 2010 10:22:51 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 25 Nov 2010 10:22:51 -0000 Received: (qmail 17370 invoked by uid 500); 25 Nov 2010 10:22:50 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 17319 invoked by uid 500); 25 Nov 2010 10:22:50 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 17312 invoked by uid 99); 25 Nov 2010 10:22:49 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 25 Nov 2010 10:22:49 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 25 Nov 2010 10:22:46 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 2905223889B9; Thu, 25 Nov 2010 10:21:14 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1038983 - in /directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos: codec/options/Options.java components/EncKdcRepPart.java flags/AbstractKerberosFlags.java messages/ApReq.java Date: Thu, 25 Nov 2010 10:21:14 -0000 To: commits@directory.apache.org From: elecharny@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101125102114.2905223889B9@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: elecharny Date: Thu Nov 25 10:21:13 2010 New Revision: 1038983 URL: http://svn.apache.org/viewvc?rev=1038983&view=rev Log: Fixed the way we deal with KerberosFlags Modified: directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/codec/options/Options.java directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/components/EncKdcRepPart.java directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/flags/AbstractKerberosFlags.java directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/messages/ApReq.java Modified: directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/codec/options/Options.java URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/codec/options/Options.java?rev=1038983&r1=1038982&r2=1038983&view=diff ============================================================================== --- directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/codec/options/Options.java (original) +++ directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/codec/options/Options.java Thu Nov 25 10:21:13 2010 @@ -20,7 +20,7 @@ package org.apache.directory.shared.kerberos.codec.options; -import org.apache.directory.shared.asn1.primitives.BitString; +import org.apache.directory.shared.kerberos.flags.AbstractKerberosFlags; /** @@ -28,7 +28,7 @@ import org.apache.directory.shared.asn1. * * @author Apache Directory Project */ -public abstract class Options extends BitString +public abstract class Options extends AbstractKerberosFlags { /** * Creates a new BitSet with a specific number of bits. Modified: directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/components/EncKdcRepPart.java URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/components/EncKdcRepPart.java?rev=1038983&r1=1038982&r2=1038983&view=diff ============================================================================== --- directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/components/EncKdcRepPart.java (original) +++ directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/components/EncKdcRepPart.java Thu Nov 25 10:21:13 2010 @@ -552,7 +552,7 @@ public class EncKdcRepPart extends Abstr // The flags buffer.put( ( byte )KerberosConstants.ENC_KDC_REP_PART_FLAGS_TAG ); buffer.put( TLV.getBytes( 0x07 ) ); - // TODO : add the flags + Value.encode( buffer, flags ); // The authtime buffer.put( ( byte )KerberosConstants.ENC_KDC_REP_PART_AUTH_TIME_TAG ); Modified: directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/flags/AbstractKerberosFlags.java URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/flags/AbstractKerberosFlags.java?rev=1038983&r1=1038982&r2=1038983&view=diff ============================================================================== --- directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/flags/AbstractKerberosFlags.java (original) +++ directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/flags/AbstractKerberosFlags.java Thu Nov 25 10:21:13 2010 @@ -19,6 +19,8 @@ */ package org.apache.directory.shared.kerberos.flags; +import org.apache.directory.shared.asn1.primitives.BitString; + /** * An implementation of a BitString for any KerberosFlags. The different values @@ -29,7 +31,7 @@ package org.apache.directory.shared.kerb * * @author Apache Directory Project */ -public abstract class AbstractKerberosFlags implements KerberosFlags +public abstract class AbstractKerberosFlags extends BitString { /** * The maximum size of the BitString as specified for Kerberos flags. @@ -45,6 +47,7 @@ public abstract class AbstractKerberosFl */ public AbstractKerberosFlags() { + super( MAX_SIZE ); value = 0; } @@ -57,8 +60,28 @@ public abstract class AbstractKerberosFl */ public AbstractKerberosFlags( int value ) { + super( MAX_SIZE ); + this.value = value; } + + + /** + * Store the flags contained in the given integer value + * @param value The list of flags to set, as a int + */ + public void setData( int value ) + { + byte[] bytes = new byte[5]; + + // The first byte contains the number of unused bytes, 0 here as we store 32 bits + bytes[0] = 0; + + bytes[1] = (byte)(value >> 24); + bytes[3] = (byte)( (value >> 16) & 0x00FF ); + bytes[3] = (byte)( (value >> 8) & 0x00FF ); + bytes[4] = (byte)(value & 0x00FF); + } /** @@ -66,12 +89,14 @@ public abstract class AbstractKerberosFl */ public AbstractKerberosFlags( byte[] flags ) { + super( MAX_SIZE ); + if ( ( flags == null ) || ( flags.length != 4 ) ) { throw new IllegalArgumentException( "The given flags is not correct" ); } - value = ( ( flags[0] & 0x00FF ) << 24 ) | ( ( flags[1] & 0x00FF ) << 16 ) | ( ( flags[2] & 0x00FF ) << 8 ) | ( 0x00FF & flags[3] ); + value = ( ( flags[0] & 0x00FF ) << 24 ) | ( ( flags[1] & 0x00FF ) << 16 ) | ( ( flags[2] & 0x00FF ) << 8 ) | ( 0x00FF & flags[3] ); } @@ -130,6 +155,7 @@ public abstract class AbstractKerberosFl public void setFlag( KerberosFlag flag ) { int pos = MAX_SIZE - 1 - flag.getValue(); + setBit( pos ); value |= 1 << pos; } @@ -141,7 +167,9 @@ public abstract class AbstractKerberosFl */ public void setFlag( int flag ) { - value |= 1 << ( MAX_SIZE - 1 - flag ); + int pos = MAX_SIZE - 1 - flag; + setBit( pos ); + value |= 1 << pos; } @@ -152,7 +180,9 @@ public abstract class AbstractKerberosFl */ public void clearFlag( KerberosFlag flag ) { - value &= ~( 1 << ( MAX_SIZE - 1 - flag.getValue() ) ); + int pos = MAX_SIZE - 1 - flag.getOrdinal(); + clearBit( pos ); + value &= ~( 1 << pos ); } @@ -163,6 +193,8 @@ public abstract class AbstractKerberosFl */ public void clearFlag( int flag ) { - value &= ~( 1 << ( MAX_SIZE - 1 - flag ) ); + int pos = MAX_SIZE - 1 - flag; + clearBit( pos ); + value &= ~( 1 << pos ); } } Modified: directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/messages/ApReq.java URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/messages/ApReq.java?rev=1038983&r1=1038982&r2=1038983&view=diff ============================================================================== --- directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/messages/ApReq.java (original) +++ directory/apacheds/trunk/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/messages/ApReq.java Thu Nov 25 10:21:13 2010 @@ -123,9 +123,9 @@ public class ApReq extends KerberosMessa * * @param option */ - public void setOption( int option ) + public void setOption( ApOptions apOptions ) { - apOptions.set( option ); + this.apOptions = apOptions; }