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 2005/08/26 18:44:46 UTC
svn commit: r240283 -
/directory/protocol-providers/kerberos/branches/refactor-to-chain/src/java/org/apache/kerberos/protocol/KerberosProtocolHandler.java
Author: erodriguez
Date: Fri Aug 26 09:44:44 2005
New Revision: 240283
URL: http://svn.apache.org/viewcvs?rev=240283&view=rev
Log:
Handler rewrite to call AS and TGS chains.
Modified:
directory/protocol-providers/kerberos/branches/refactor-to-chain/src/java/org/apache/kerberos/protocol/KerberosProtocolHandler.java
Modified: directory/protocol-providers/kerberos/branches/refactor-to-chain/src/java/org/apache/kerberos/protocol/KerberosProtocolHandler.java
URL: http://svn.apache.org/viewcvs/directory/protocol-providers/kerberos/branches/refactor-to-chain/src/java/org/apache/kerberos/protocol/KerberosProtocolHandler.java?rev=240283&r1=240282&r2=240283&view=diff
==============================================================================
--- directory/protocol-providers/kerberos/branches/refactor-to-chain/src/java/org/apache/kerberos/protocol/KerberosProtocolHandler.java (original)
+++ directory/protocol-providers/kerberos/branches/refactor-to-chain/src/java/org/apache/kerberos/protocol/KerberosProtocolHandler.java Fri Aug 26 09:44:44 2005
@@ -16,16 +16,15 @@
*/
package org.apache.kerberos.protocol;
-import java.io.IOException;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.kerberos.chain.Command;
import org.apache.kerberos.exceptions.ErrorType;
-import org.apache.kerberos.exceptions.KerberosException;
-import org.apache.kerberos.messages.AuthenticationReply;
-import org.apache.kerberos.messages.ErrorMessage;
+import org.apache.kerberos.kdc.authentication.AuthenticationContext;
+import org.apache.kerberos.kdc.authentication.AuthenticationServiceChain;
+import org.apache.kerberos.kdc.ticketgrant.TicketGrantingContext;
+import org.apache.kerberos.kdc.ticketgrant.TicketGrantingServiceChain;
import org.apache.kerberos.messages.KdcRequest;
-import org.apache.kerberos.messages.TicketGrantReply;
import org.apache.kerberos.service.KdcConfiguration;
import org.apache.kerberos.store.PrincipalStore;
import org.apache.mina.common.IdleStatus;
@@ -42,15 +41,20 @@
public class KerberosProtocolHandler implements ProtocolHandler
{
private static final Log log = LogFactory.getLog( KerberosProtocolHandler.class );
- private AuthenticationService authService;
- private TicketGrantingService tgsService;
- private ErrorService errorService;
+
+ private KdcConfiguration config;
+ private PrincipalStore store;
+
+ private Command authService;
+ private Command tgsService;
public KerberosProtocolHandler( KdcConfiguration config, PrincipalStore store )
{
- errorService = new ErrorService( config );
- authService = new AuthenticationService( config, store );
- tgsService = new TicketGrantingService( config, store );
+ this.config = config;
+ this.store = store;
+
+ authService = new AuthenticationServiceChain();
+ tgsService = new TicketGrantingServiceChain();
}
public void sessionCreated( ProtocolSession session )
@@ -98,41 +102,47 @@
log.debug( session.getRemoteAddress() + " RCVD: " + message );
}
- try
- {
- KdcRequest request = (KdcRequest) message;
+ KdcRequest request = (KdcRequest) message;
- int messageType = request.getMessageType().getOrdinal();
+ int messageType = request.getMessageType().getOrdinal();
+ try
+ {
switch ( messageType )
{
case 10:
- AuthenticationReply authReply = authService.getReplyFor( request );
- session.write( authReply );
+ AuthenticationContext authContext = new AuthenticationContext();
+ authContext.setConfig( config );
+ authContext.setStore( store );
+ authContext.setRequest( request );
+
+ authService.execute( authContext );
+
+ session.write( authContext.getReply() );
break;
case 12:
- TicketGrantReply ticketReply = tgsService.getReplyFor( request );
- session.write( ticketReply );
+ TicketGrantingContext tgsContext = new TicketGrantingContext();
+ tgsContext.setConfig( config );
+ tgsContext.setStore( store );
+ tgsContext.setRequest( request );
+
+ tgsService.execute( tgsContext );
+
+ session.write( tgsContext.getReply() );
break;
case 11:
case 13:
- throw new KerberosException( ErrorType.KRB_AP_ERR_BADDIRECTION );
+ log.error( "Kerberos error: " + ErrorType.KRB_AP_ERR_BADDIRECTION.getMessage() );
default:
- throw new KerberosException( ErrorType.KRB_AP_ERR_MSG_TYPE );
+ log.error( "Kerberos error: " + ErrorType.KRB_AP_ERR_MSG_TYPE.getMessage() );
}
}
- catch ( KerberosException ke )
- {
- log.error( "Returning error message: " + ke.getMessage(), ke );
- ErrorMessage errorMessage = errorService.getReplyFor( ke );
- session.write( errorMessage );
- }
- catch ( IOException ioe )
+ catch ( Exception e )
{
- log.error( ioe );
+ log.error( e.getStackTrace() );
}
}