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/02/05 02:38:12 UTC

svn commit: r151463 - incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/kdc/TicketGrantingService.java

Author: erodriguez
Date: Fri Feb  4 17:38:11 2005
New Revision: 151463

URL: http://svn.apache.org/viewcvs?view=rev&rev=151463
Log:
Light refactoring of the ticket-granting service.

Modified:
    incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/kdc/TicketGrantingService.java

Modified: incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/kdc/TicketGrantingService.java
URL: http://svn.apache.org/viewcvs/incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/kdc/TicketGrantingService.java?view=diff&r1=151462&r2=151463
==============================================================================
--- incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/kdc/TicketGrantingService.java (original)
+++ incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/kdc/TicketGrantingService.java Fri Feb  4 17:38:11 2005
@@ -14,6 +14,7 @@
  *   limitations under the License.
  *
  */
+
 package org.apache.kerberos.kdc;
 
 import java.io.IOException;
@@ -55,8 +56,8 @@
 /**
  * RFC 1510 A.6.  KRB_TGS_REQ verification and KRB_TGS_REP generation
  */
-public class TicketGrantingService extends KerberosService {
-	
+public class TicketGrantingService extends KerberosService
+{
 	private KdcConfiguration config;
 
 	public TicketGrantingService( KdcConfiguration config, PrincipalStore bootstrap, PrincipalStore store )
@@ -66,54 +67,62 @@
 		this.config = config;
 	}
 	
-	public TicketGrantReply getReplyFor(KdcRequest request) throws KerberosException, IOException {
-		
-		ApplicationRequest authHeader = getAuthHeader(request);
+	public TicketGrantReply getReplyFor(KdcRequest request) throws KerberosException, IOException
+	{
+		ApplicationRequest authHeader = getAuthHeader( request );
 		
 		Ticket tgt = authHeader.getTicket();
 		
-		Authenticator authenticator = verifyAuthHeader(authHeader, tgt);
+		Authenticator authenticator = verifyAuthHeader( authHeader, tgt );
 		
-		verifyTicket(tgt, request.getServerPrincipal());
+		verifyTicket( tgt, request.getServerPrincipal() );
 		
-		verifyBodyChecksum(authenticator.getChecksum(), request);
+		verifyBodyChecksum( authenticator.getChecksum(), request );
 		
 		EncryptionKey sessionKey = new RandomKey().getNewSessionKey();
 		
-		EncryptionType eType = getBestEncryptionType(request.getEType());
+		EncryptionType eType = getBestEncryptionType( request.getEType() );
 		
-		Ticket newTicket = getNewTicket(request, tgt, sessionKey, authenticator);
+		Ticket newTicket = getNewTicket( request, tgt, sessionKey, authenticator );
 		
-		TicketGrantReply reply = getReply(tgt, newTicket, sessionKey, request);
+		TicketGrantReply reply = getReply( tgt, newTicket, sessionKey, request );
 		
-		if (authenticator.getSubSessionKey() != null) {
+		if ( authenticator.getSubSessionKey() != null )
+		{
 			EncryptionKey subKey = authenticator.getSubSessionKey();
-			encryptReplyPart(reply, subKey);
-		} else {
-			encryptReplyPart(reply, tgt.getSessionKey());
+			encryptReplyPart( reply, subKey );
+		}
+		else
+		{
+			encryptReplyPart( reply, tgt.getSessionKey() );
 		}
 		
 		return reply;
 	}
 	
-	private ApplicationRequest getAuthHeader(KdcRequest request) throws KerberosException, IOException {
-		
-		if (request.getPreAuthData()[0].getDataType() != PreAuthenticationDataType.PA_TGS_REQ)
+	private ApplicationRequest getAuthHeader( KdcRequest request )
+			throws KerberosException, IOException
+	{
+		if ( request.getPreAuthData()[0].getDataType() != PreAuthenticationDataType.PA_TGS_REQ )
+		{
 			throw KerberosException.KDC_ERR_PADATA_TYPE_NOSUPP;
+		}
 		
 		byte[] undecodedAuthHeader = request.getPreAuthData()[0].getDataValue();
 		ApplicationRequestDecoder decoder = new ApplicationRequestDecoder();
-		ApplicationRequest authHeader = decoder.decode(undecodedAuthHeader);
+		ApplicationRequest authHeader = decoder.decode( undecodedAuthHeader );
 		
 		return authHeader;
 	}
 
 	// TODO - configurable checksum
-	private void verifyBodyChecksum(Checksum authChecksum, KdcRequest request)
-			throws KerberosException {
-		
-		if (authChecksum == null)
+	private void verifyBodyChecksum( Checksum authChecksum, KdcRequest request )
+			throws KerberosException
+	{
+		if ( authChecksum == null )
+		{
 			throw KerberosException.KRB_AP_ERR_INAPP_CKSUM;
+		}
 		
 		/*
 		if (auth_hdr.authenticator.cksum type is not supported) then
@@ -129,28 +138,34 @@
 		
 		KdcReqBodyEncoder encoder = new KdcReqBodyEncoder();
 		byte[] bytes = null;
-		try {
-			bytes = encoder.encode(request);
-		} catch (IOException ioe) {
+		try
+		{
+			bytes = encoder.encode( request );
+		}
+		catch (IOException ioe)
+		{
 			ioe.printStackTrace();
 		}
 		
 		ChecksumEngine digester = new RsaMd5Checksum();
-		Checksum newChecksum = new Checksum(digester.checksumType(), digester.calculateChecksum(bytes));
+		Checksum newChecksum = new Checksum( digester.checksumType(), digester.calculateChecksum( bytes ) );
 		
-		boolean equal = newChecksum.equals(authChecksum);
+		boolean equal = newChecksum.equals( authChecksum );
 		
-		if (!equal)
+		if ( !equal )
+		{
 			throw KerberosException.KRB_AP_ERR_MODIFIED;
+		}
 	}
 
-	private EncryptionKey getServerKey(KerberosPrincipal serverPrincipal) throws KerberosException {
-		
+	private EncryptionKey getServerKey( KerberosPrincipal serverPrincipal )
+			throws KerberosException
+	{
 		EncryptionKey serverKey = null;
 		// TODO - allow lookup with realm
 		try
         {
-			serverKey = getKeyForPrincipal(serverPrincipal);
+			serverKey = getKeyForPrincipal( serverPrincipal );
 		}
         catch (Exception e)
         {
@@ -169,140 +184,187 @@
 		return serverKey;
 	}
 	
-	private Ticket getNewTicket(KdcRequest request, Ticket tgt, EncryptionKey sessionKey,
-			Authenticator authenticator) throws KerberosException {
-		
+	private Ticket getNewTicket( KdcRequest request, Ticket tgt, EncryptionKey sessionKey,
+			Authenticator authenticator ) throws KerberosException
+	{
 		KerberosPrincipal ticketPrincipal = request.getServerPrincipal();
 
 		EncTicketPartModifier newTicketBody = new EncTicketPartModifier();
 		
-		newTicketBody.setClientAddresses(tgt.getClientAddresses());
+		newTicketBody.setClientAddresses( tgt.getClientAddresses() );
 		
-		processFlags(request, tgt, newTicketBody);
+		processFlags( request, tgt, newTicketBody );
 		
-		newTicketBody.setSessionKey(sessionKey);
-		newTicketBody.setClientPrincipal(tgt.getClientPrincipal());
+		newTicketBody.setSessionKey( sessionKey );
+		newTicketBody.setClientPrincipal( tgt.getClientPrincipal() );
 		
-		AuthorizationData authData = processAuthorizationData(request, authenticator, tgt);
-		newTicketBody.setAuthorizationData(authData);
+		AuthorizationData authData = processAuthorizationData( request, authenticator, tgt );
+		newTicketBody.setAuthorizationData( authData );
 		
-		processTransited(newTicketBody, tgt);
+		processTransited( newTicketBody, tgt );
 		
-		processTimes(request, newTicketBody, tgt);
+		processTimes( request, newTicketBody, tgt );
 		
-		EncryptionKey serverKey = getServerKey(request.getServerPrincipal());
+		EncryptionKey serverKey = getServerKey( request.getServerPrincipal() );
 		
 		EncTicketPart ticketPart = newTicketBody.getEncTicketPart();
 		
-		EncryptedData encryptedData = encryptTicketPart(ticketPart, serverKey, request);
+		EncryptedData encryptedData = encryptTicketPart( ticketPart, serverKey, request );
 		
-		Ticket newTicket = new Ticket(ticketPrincipal, encryptedData);
-		newTicket.setEncTicketPart(ticketPart);
+		Ticket newTicket = new Ticket( ticketPrincipal, encryptedData );
+		newTicket.setEncTicketPart( ticketPart );
 		
 		return newTicket;
 	}
 	
-	private void processFlags(KdcRequest request, Ticket tgt, EncTicketPartModifier newTicketBody) 
-			throws KerberosException {
-		
-		if (request.getOption(KdcOptions.FORWARDABLE)) {
-			if (!tgt.getFlag(TicketFlags.FORWARDABLE))
+	private void processFlags( KdcRequest request, Ticket tgt, EncTicketPartModifier newTicketBody ) 
+			throws KerberosException
+	{
+		if ( request.getOption( KdcOptions.FORWARDABLE ) )
+		{
+			if ( !tgt.getFlag( TicketFlags.FORWARDABLE ) )
+			{
 				throw KerberosException.KDC_ERR_BADOPTION;
-			newTicketBody.setFlag(TicketFlags.FORWARDABLE);
+			}
+			
+			newTicketBody.setFlag( TicketFlags.FORWARDABLE );
 		}
 
-		if (request.getOption(KdcOptions.FORWARDED)) {
-			if (!tgt.getFlag(TicketFlags.FORWARDABLE))
+		if ( request.getOption( KdcOptions.FORWARDED ) )
+		{
+			if ( !tgt.getFlag( TicketFlags.FORWARDABLE ) )
+			{
 				throw KerberosException.KDC_ERR_BADOPTION;
-			newTicketBody.setFlag(TicketFlags.FORWARDED);
-			newTicketBody.setClientAddresses(request.getAddresses());
+			}
+			newTicketBody.setFlag( TicketFlags.FORWARDED );
+			newTicketBody.setClientAddresses( request.getAddresses() );
 			// reply.setClientAddresses(request.getClientAddresses()); moved to getReply
 		}
 		
-		if (tgt.getFlag(TicketFlags.FORWARDED))
+		if ( tgt.getFlag( TicketFlags.FORWARDED ) )
+		{
 			newTicketBody.setFlag(TicketFlags.FORWARDED);
+		}
 
-		if (request.getOption(KdcOptions.PROXIABLE)) {
-			if (!tgt.getFlag(TicketFlags.PROXIABLE))
+		if ( request.getOption( KdcOptions.PROXIABLE ) )
+		{
+			if ( !tgt.getFlag( TicketFlags.PROXIABLE ) )
+			{
 				throw KerberosException.KDC_ERR_BADOPTION;
-			newTicketBody.setFlag(TicketFlags.PROXIABLE);
+			}
+			
+			newTicketBody.setFlag( TicketFlags.PROXIABLE );
 		}
 		
-		if (request.getOption(KdcOptions.PROXY)) {
-			if (!tgt.getFlag(TicketFlags.PROXIABLE))
+		if ( request.getOption( KdcOptions.PROXY ) )
+		{
+			if ( !tgt.getFlag( TicketFlags.PROXIABLE ) )
+			{
 				throw KerberosException.KDC_ERR_BADOPTION;
-			newTicketBody.setFlag(TicketFlags.PROXY);
-			newTicketBody.setClientAddresses(request.getAddresses());
+			}
+			
+			newTicketBody.setFlag( TicketFlags.PROXY );
+			newTicketBody.setClientAddresses( request.getAddresses() );
 			// reply.setClientAddresses(request.getClientAddresses()); moved to getReply
 		}
 		
-		if (request.getOption(KdcOptions.ALLOW_POSTDATE)) {
-			if (!tgt.getFlag(TicketFlags.MAY_POSTDATE))
+		if ( request.getOption( KdcOptions.ALLOW_POSTDATE ) )
+		{
+			if ( !tgt.getFlag( TicketFlags.MAY_POSTDATE ) )
+			{
 				throw KerberosException.KDC_ERR_BADOPTION;
-			newTicketBody.setFlag(TicketFlags.MAY_POSTDATE);
+			}
+			
+			newTicketBody.setFlag( TicketFlags.MAY_POSTDATE );
 		}
 		
-		if (request.getOption(KdcOptions.POSTDATED)) {
-			if (!tgt.getFlag(TicketFlags.MAY_POSTDATE))
+		if ( request.getOption( KdcOptions.POSTDATED ) )
+		{
+			if ( !tgt.getFlag( TicketFlags.MAY_POSTDATE ) )
+			{
 				throw KerberosException.KDC_ERR_BADOPTION;
-			newTicketBody.setFlag(TicketFlags.POSTDATED);
-			newTicketBody.setFlag(TicketFlags.INVALID);
+			}
+			
+			newTicketBody.setFlag( TicketFlags.POSTDATED );
+			newTicketBody.setFlag( TicketFlags.INVALID );
 			
-			if (!config.isPostdateAllowed())
+			if ( !config.isPostdateAllowed() )
+			{
 				throw KerberosException.KDC_ERR_POLICY;
+			}
 			
-			newTicketBody.setStartTime(request.getFrom());
+			newTicketBody.setStartTime( request.getFrom() );
 		}
 
-		if (request.getOption(KdcOptions.VALIDATE)) {
-			if (!tgt.getFlag(TicketFlags.INVALID))
+		if ( request.getOption( KdcOptions.VALIDATE ) )
+		{
+			if ( !tgt.getFlag( TicketFlags.INVALID ) )
+			{
 				throw KerberosException.KDC_ERR_POLICY;
-			if (tgt.getStartTime().greaterThan(new KerberosTime()))
+			}
+			
+			if ( tgt.getStartTime().greaterThan( new KerberosTime() ) )
+			{
 				throw KerberosException.KRB_AP_ERR_TKT_NYV;
+			}
+			
 			/*
 	        if (check_hot_list(tgt)) then
             	error_out(KRB_AP_ERR_REPEAT);
 	        endif
 	        */
 			
-			echoTicket(newTicketBody, tgt);
-			newTicketBody.clearFlag(TicketFlags.INVALID);
+			echoTicket( newTicketBody, tgt );
+			newTicketBody.clearFlag( TicketFlags.INVALID );
 		}
 
-		if (request.getOption(KdcOptions.RESERVED) ||
-				request.getOption(KdcOptions.RENEWABLE) ||
-				request.getOption(KdcOptions.RENEWABLE_OK))
+		if ( request.getOption( KdcOptions.RESERVED ) ||
+				request.getOption( KdcOptions.RENEWABLE ) ||
+				request.getOption( KdcOptions.RENEWABLE_OK ) )
+		{
 				throw KerberosException.KRB_AP_ERR_TKT_NYV;
+		}
 	}
 	
-	private void processTimes(KdcRequest request, EncTicketPartModifier newTicketBody, Ticket tgt)
-			throws KerberosException {
-		
+	private void processTimes( KdcRequest request, EncTicketPartModifier newTicketBody, Ticket tgt )
+			throws KerberosException
+	{
 		KerberosTime now = new KerberosTime();
 		
-		newTicketBody.setAuthTime(tgt.getAuthTime());
+		newTicketBody.setAuthTime( tgt.getAuthTime() );
 		
 		KerberosTime renewalTime = null;
 		
-		if (request.getOption(KdcOptions.RENEW))
+		if ( request.getOption( KdcOptions.RENEW ) )
         {
-			if (!tgt.getFlag(TicketFlags.RENEWABLE))
+			if ( !tgt.getFlag( TicketFlags.RENEWABLE ) )
+			{
 				throw KerberosException.KDC_ERR_BADOPTION;
-			if (tgt.getRenewTill().greaterThan(now))
+			}
+			
+			if ( tgt.getRenewTill().greaterThan( now ) )
+			{
 				throw KerberosException.KRB_AP_ERR_TKT_EXPIRED;
+			}
 
-            echoTicket(newTicketBody, tgt);
+            echoTicket( newTicketBody, tgt );
 
-            newTicketBody.setStartTime(now);
+            newTicketBody.setStartTime( now );
 			long oldLife = tgt.getEndTime().getTime() - tgt.getStartTime().getTime();
-			newTicketBody.setEndTime(new KerberosTime(Math.min(tgt.getRenewTill().getTime(), now.getTime() + oldLife)));
-		} else {
-			newTicketBody.setStartTime(now);
+			newTicketBody.setEndTime( new KerberosTime( Math.min( tgt.getRenewTill().getTime(), now.getTime() + oldLife ) ) );
+		}
+		else
+		{
+			newTicketBody.setStartTime( now );
 			KerberosTime till;
-			if (request.getTill().isZero())
+			if ( request.getTill().isZero() )
+			{
 				till = KerberosTime.INFINITY;
+			}
 			else
+			{
 				till = request.getTill();
+			}
 			
 			// TODO - config; requires store
 			/*
@@ -310,35 +372,42 @@
             new_tkt.starttime+server.max_life,
             */
 			List minimizer = new ArrayList();
-			minimizer.add(till);
-			minimizer.add(new KerberosTime(now.getTime() + config.getMaximumTicketLifetime()));
-			minimizer.add(tgt.getEndTime());
-			KerberosTime minTime = (KerberosTime)Collections.min(minimizer);
-			newTicketBody.setEndTime(minTime);
-			
-			if (request.getOption(KdcOptions.RENEWABLE_OK) &&
-					minTime.lessThan(request.getTill()) &&
-					tgt.getFlag(TicketFlags.RENEWABLE)) {
+			minimizer.add( till );
+			minimizer.add( new KerberosTime( now.getTime() + config.getMaximumTicketLifetime() ) );
+			minimizer.add( tgt.getEndTime() );
+			KerberosTime minTime = (KerberosTime)Collections.min( minimizer );
+			newTicketBody.setEndTime( minTime );
+			
+			if ( request.getOption( KdcOptions.RENEWABLE_OK ) &&
+					minTime.lessThan( request.getTill() ) &&
+					tgt.getFlag( TicketFlags.RENEWABLE ) )
+			{
                 // we set the RENEWABLE option for later processing                           
-				request.setOption(KdcOptions.RENEWABLE);
-				long rtime = Math.min(request.getTill().getTime(), tgt.getRenewTill().getTime());
-				renewalTime = new KerberosTime(rtime);
+				request.setOption( KdcOptions.RENEWABLE );
+				long rtime = Math.min( request.getTill().getTime(), tgt.getRenewTill().getTime() );
+				renewalTime = new KerberosTime( rtime );
 			}
 		}
 		
-		if (renewalTime == null) {
+		if ( renewalTime == null )
+		{
 			renewalTime = request.getRtime();
 		}
 		
 		KerberosTime rtime;
-		if (renewalTime != null && renewalTime.isZero())
+		if ( renewalTime != null && renewalTime.isZero() )
+		{
 			rtime = KerberosTime.INFINITY;
+		}
 		else
+		{
 			rtime = renewalTime;
+		}
 		
-		if (request.getOption(KdcOptions.RENEWABLE) &&
-				tgt.getFlag(TicketFlags.RENEWABLE)) {
-			newTicketBody.setFlag(TicketFlags.RENEWABLE);
+		if ( request.getOption( KdcOptions.RENEWABLE ) &&
+				tgt.getFlag( TicketFlags.RENEWABLE ) )
+		{
+			newTicketBody.setFlag( TicketFlags.RENEWABLE );
 			
 			/*
 	        new_tkt.starttime+client.max_rlife,
@@ -346,34 +415,40 @@
 	        */
 			// TODO - client and server configurable; requires store 
 			List minimizer = new ArrayList();
-			minimizer.add(rtime);
-			minimizer.add(new KerberosTime(now.getTime() + config.getMaximumRenewableLifetime()));
-			minimizer.add(tgt.getRenewTill());
-			newTicketBody.setRenewTill((KerberosTime)Collections.min(minimizer));
+			minimizer.add( rtime );
+			minimizer.add( new KerberosTime( now.getTime() + config.getMaximumRenewableLifetime() ) );
+			minimizer.add( tgt.getRenewTill() );
+			newTicketBody.setRenewTill( (KerberosTime)Collections.min( minimizer ) );
 		}
 	}
 
-    private AuthorizationData processAuthorizationData(KdcRequest request,
-			Authenticator authHeader, Ticket tgt) throws KerberosException {
-
+    private AuthorizationData processAuthorizationData( KdcRequest request,
+			Authenticator authHeader, Ticket tgt ) throws KerberosException
+	{
 		AuthorizationData authData = null;
 
-		if (request.getEncAuthorizationData() != null) {
-			try {
+		if ( request.getEncAuthorizationData() != null )
+		{
+			try
+			{
                 EncryptionEngine engine = EncryptionEngineFactory.getEncryptionEngineFor( authHeader.getSubSessionKey() );
-
-				byte[] decryptedAuthData = engine.getDecryptedData(authHeader.getSubSessionKey(),
-						request.getEncAuthorizationData());
+                
+				byte[] decryptedAuthData = engine.getDecryptedData( authHeader.getSubSessionKey(),
+						request.getEncAuthorizationData() );
 				AuthorizationDataDecoder decoder = new AuthorizationDataDecoder();
-				authData = decoder.decode(decryptedAuthData);
-			} catch (KerberosException e) {
+				authData = decoder.decode( decryptedAuthData );
+			}
+			catch (KerberosException e)
+			{
 				throw KerberosException.KRB_AP_ERR_BAD_INTEGRITY;
-			} catch (IOException ioe) {
+			}
+			catch (IOException ioe)
+			{
 				throw KerberosException.KRB_AP_ERR_BAD_INTEGRITY;
 			}
 
 			AuthorizationData ticketData = tgt.getAuthorizationData();
-			authData.add(ticketData);
+			authData.add( ticketData );
 		}
 		
 		return authData;
@@ -391,27 +466,29 @@
 	        new_tkt.transited := compress_transited(tgt.transited + tgt.realm)
 	endif
 	*/
-	private void processTransited(EncTicketPartModifier newTicketBody, Ticket tgt) {
+	private void processTransited( EncTicketPartModifier newTicketBody, Ticket tgt )
+	{
 		// TODO - currently no transited support other than local
-		newTicketBody.setTransitedEncoding(tgt.getTransitedEncoding());
+		newTicketBody.setTransitedEncoding( tgt.getTransitedEncoding() );
 	}
 	
-	private EncryptedData encryptTicketPart(EncTicketPart newTicketBody, EncryptionKey serverKey,
-			KdcRequest request) throws KerberosException {
-		
+	private EncryptedData encryptTicketPart( EncTicketPart newTicketBody, EncryptionKey serverKey,
+			KdcRequest request ) throws KerberosException
+	{
 		byte[] encodedTicket = null;
 		
 		EncTicketPartEncoder encoder = new EncTicketPartEncoder();
 		try
         {
-			encodedTicket = encoder.encode(newTicketBody);
+			encodedTicket = encoder.encode( newTicketBody );
 		}
         catch (IOException ioe)
         {
 			ioe.printStackTrace();
 		}
 		
-		if (request.getOption(KdcOptions.ENC_TKT_IN_SKEY)) {
+		if ( request.getOption( KdcOptions.ENC_TKT_IN_SKEY ) )
+		{
 			/*
 			if (server not specified) then
 				server = req.second_ticket.client;
@@ -423,48 +500,57 @@
 			new_tkt.enc-part := encrypt OCTET STRING
 				using etype_for_key(second-ticket.key), second-ticket.key;
 			*/
-		} else {
+		}
+		else
+		{
 			// encrypt with serverKey
 		}
+		
         EncryptionEngine engine = EncryptionEngineFactory.getEncryptionEngineFor( serverKey );
 
-		return engine.getEncryptedData(serverKey, encodedTicket);
+		return engine.getEncryptedData( serverKey, encodedTicket );
 	}
 	
-	private void encryptReplyPart(TicketGrantReply reply, EncryptionKey key) {
+	private void encryptReplyPart( TicketGrantReply reply, EncryptionKey key )
+	{
 		EncTgsRepPartEncoder encoder = new EncTgsRepPartEncoder();
-		try {
-			byte[] plainText = encoder.encode(reply);
+		try
+		{
+			byte[] plainText = encoder.encode( reply );
             EncryptionEngine engine = EncryptionEngineFactory.getEncryptionEngineFor( key );
 
-			EncryptedData cipherText = engine.getEncryptedData(key, plainText);
+			EncryptedData cipherText = engine.getEncryptedData( key, plainText );
 
-			reply.setEncPart(cipherText);
+			reply.setEncPart( cipherText );
 			
-		} catch (Exception e) {
+		}
+		catch (Exception e)
+		{
 			e.printStackTrace();
 		}
 	}
 	
-	private TicketGrantReply getReply(Ticket tgt, Ticket newTicket,
-			EncryptionKey sessionKey, KdcRequest request) {
-		
+	private TicketGrantReply getReply( Ticket tgt, Ticket newTicket,
+			EncryptionKey sessionKey, KdcRequest request )
+	{
 		TicketGrantReply reply = new TicketGrantReply();
-		reply.setClientPrincipal(tgt.getClientPrincipal());
-		reply.setTicket(newTicket);
-		reply.setKey(sessionKey);
-		reply.setNonce(request.getNonce());
+		reply.setClientPrincipal( tgt.getClientPrincipal() );
+		reply.setTicket( newTicket );
+		reply.setKey( sessionKey );
+		reply.setNonce( request.getNonce() );
 		// TODO - resp.last-req := fetch_last_request_info(client); requires store
-		reply.setLastRequest(new LastRequest());
-		reply.setFlags(newTicket.getFlags());
-		reply.setClientAddresses(newTicket.getClientAddresses());
-		reply.setAuthTime(newTicket.getAuthTime());
-		reply.setStartTime(newTicket.getStartTime());
-		reply.setEndTime(newTicket.getEndTime());
-		reply.setServerPrincipal(newTicket.getServerPrincipal());
-		
-		if (newTicket.getFlag(TicketFlags.RENEWABLE))
-			reply.setRenewTill(newTicket.getRenewTill());
+		reply.setLastRequest( new LastRequest() );
+		reply.setFlags( newTicket.getFlags() );
+		reply.setClientAddresses( newTicket.getClientAddresses() );
+		reply.setAuthTime( newTicket.getAuthTime() );
+		reply.setStartTime( newTicket.getStartTime() );
+		reply.setEndTime( newTicket.getEndTime() );
+		reply.setServerPrincipal( newTicket.getServerPrincipal() );
+		
+		if ( newTicket.getFlag( TicketFlags.RENEWABLE ) )
+		{
+			reply.setRenewTill( newTicket.getRenewTill() );
+		}
 		
 		return reply;
 	}