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 2010/12/01 16:01:54 UTC

svn commit: r1041038 - in /directory/apacheds/branches/apacheds-kerberos-codec-2.0: kerberos-codec/ protocol-kerberos/ protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/protocol/

Author: elecharny
Date: Wed Dec  1 15:01:54 2010
New Revision: 1041038

URL: http://svn.apache.org/viewvc?rev=1041038&view=rev
Log:
o Updated the pom to include the kerberos-codec in the build
o Injcted the kerberos-decoder into the kerberos protocol handler (it has compilation failures atm)

Modified:
    directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-codec/pom.xml
    directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/pom.xml
    directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosTcpDecoder.java
    directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosUdpDecoder.java

Modified: directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-codec/pom.xml
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-codec/pom.xml?rev=1041038&r1=1041037&r2=1041038&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-codec/pom.xml (original)
+++ directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-codec/pom.xml Wed Dec  1 15:01:54 2010
@@ -62,5 +62,23 @@
       <artifactId>shared-ldap</artifactId>
     </dependency>
   </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-source-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>attach-sources</id>
+            <phase>verify</phase>
+            <goals>
+              <goal>jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 </project>
 

Modified: directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/pom.xml
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/pom.xml?rev=1041038&r1=1041037&r2=1041038&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/pom.xml (original)
+++ directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/pom.xml Wed Dec  1 15:01:54 2010
@@ -54,6 +54,11 @@
 
     <dependency>
       <groupId>${project.groupId}</groupId>
+      <artifactId>apacheds-kerberos-codec</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
       <artifactId>apacheds-protocol-shared</artifactId>
     </dependency>
 

Modified: directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosTcpDecoder.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosTcpDecoder.java?rev=1041038&r1=1041037&r2=1041038&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosTcpDecoder.java (original)
+++ directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosTcpDecoder.java Wed Dec  1 15:01:54 2010
@@ -105,8 +105,6 @@ public class KerberosTcpDecoder extends 
         LdapMessageContainer messageContainer = ( LdapMessageContainer ) session
             .getAttribute( "messageContainer" );
         
-        
-        
         while ( buf.hasRemaining() )
         {
             try

Modified: directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosUdpDecoder.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosUdpDecoder.java?rev=1041038&r1=1041037&r2=1041038&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosUdpDecoder.java (original)
+++ directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosUdpDecoder.java Wed Dec  1 15:01:54 2010
@@ -21,12 +21,20 @@ package org.apache.directory.server.kerb
 
 
 import java.io.IOException;
+import java.nio.ByteBuffer;
 
 import org.apache.directory.server.kerberos.shared.io.decoder.KdcRequestDecoder;
+import org.apache.directory.shared.asn1.ber.Asn1Decoder;
+import org.apache.directory.shared.asn1.ber.tlv.TLVStateEnum;
+import org.apache.directory.shared.asn1.codec.DecoderException;
+import org.apache.directory.shared.kerberos.codec.KerberosMessageContainer;
+import org.apache.directory.shared.ldap.codec.LdapDecoder;
 import org.apache.mina.core.buffer.IoBuffer;
 import org.apache.mina.core.session.IoSession;
 import org.apache.mina.filter.codec.ProtocolDecoderAdapter;
 import org.apache.mina.filter.codec.ProtocolDecoderOutput;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 /**
@@ -34,11 +42,57 @@ import org.apache.mina.filter.codec.Prot
  */
 public class KerberosUdpDecoder extends ProtocolDecoderAdapter
 {
+    /** The logger */
+    private static Logger LOG = LoggerFactory.getLogger( LdapDecoder.class );
+
+    /** A speedup for logger */
+    private static final boolean IS_DEBUG = LOG.isDebugEnabled();
+
     private KdcRequestDecoder decoder = new KdcRequestDecoder();
 
+    /** The ASN 1 decoder instance */
+    private Asn1Decoder asn1Decoder = new Asn1Decoder();
 
     public void decode( IoSession session, IoBuffer in, ProtocolDecoderOutput out ) throws IOException
     {
-        out.write( decoder.decode( in.buf() ) );
+        ByteBuffer buf = in.buf();
+        KerberosMessageContainer kerberosMessageContainer = ( KerberosMessageContainer ) session.getAttribute( "kerberosMessageContainer" );
+
+        if ( kerberosMessageContainer == null )
+        {
+            kerberosMessageContainer = new KerberosMessageContainer();
+            session.setAttribute( "kerberosMessageContainer", kerberosMessageContainer );
+            kerberosMessageContainer.setStream( buf );
+        }
+        
+        while ( buf.hasRemaining() )
+        {
+            try
+            {
+                asn1Decoder.decode( buf, kerberosMessageContainer );
+
+                if ( kerberosMessageContainer.getState() == TLVStateEnum.PDU_DECODED )
+                {
+                    if ( IS_DEBUG )
+                    {
+                        LOG.debug( "Decoded KerberosMessage : " + kerberosMessageContainer.getMessage() );
+                        buf.mark();
+                    }
+        
+                    out.write( kerberosMessageContainer.getMessage() );
+        
+                    kerberosMessageContainer.clean();
+                }
+            }
+            catch ( DecoderException de )
+            {
+                buf.clear();
+                kerberosMessageContainer.clean();
+            }
+            catch ( Exception e )
+            {
+                e.printStackTrace();
+            }
+        }
     }
 }