Author: erodriguez
Date: Tue Nov  9 22:02:23 2004
New Revision: 57145

Modified:
   
incubator/directory/kerberos/trunk/kerberos/src/java/org/apache/kerberos/kdc/AuthenticationService.java
   
incubator/directory/kerberos/trunk/kerberos/src/java/org/apache/kerberos/kdc/KerberosService.java
   
incubator/directory/kerberos/trunk/kerberos/src/java/org/apache/kerberos/kdc/TicketGrantingService.java
Log:
Extracted method for echoing tickets; moved to base service class.

Modified: 
incubator/directory/kerberos/trunk/kerberos/src/java/org/apache/kerberos/kdc/AuthenticationService.java
==============================================================================
--- 
incubator/directory/kerberos/trunk/kerberos/src/java/org/apache/kerberos/kdc/AuthenticationService.java
     (original)
+++ 
incubator/directory/kerberos/trunk/kerberos/src/java/org/apache/kerberos/kdc/AuthenticationService.java
     Tue Nov  9 22:02:23 2004
@@ -67,7 +67,7 @@
                AuthenticationReply reply = getAuthenticationReply(request, 
ticket);
                encryptReplyPart(reply, clientKey);
                
-               System.out.print("Got request from client " + 
clientPrincipal.toString() + " ");
+               System.out.print("Issuing ticket to client " + 
clientPrincipal.toString() + " ");
                System.out.println("for access to " + 
serverPrincipal.toString());
                
                return reply;

Modified: 
incubator/directory/kerberos/trunk/kerberos/src/java/org/apache/kerberos/kdc/KerberosService.java
==============================================================================
--- 
incubator/directory/kerberos/trunk/kerberos/src/java/org/apache/kerberos/kdc/KerberosService.java
   (original)
+++ 
incubator/directory/kerberos/trunk/kerberos/src/java/org/apache/kerberos/kdc/KerberosService.java
   Tue Nov  9 22:02:23 2004
@@ -27,6 +27,7 @@
 import org.apache.kerberos.messages.components.Ticket;
 import org.apache.kerberos.messages.components.Authenticator;
 import org.apache.kerberos.messages.components.EncTicketPart;
+import org.apache.kerberos.messages.components.EncTicketPartModifier;
 import org.apache.kerberos.messages.value.EncryptionKey;
 import org.apache.kerberos.messages.value.ApOptions;
 import org.apache.kerberos.messages.value.TicketFlags;
@@ -65,8 +66,6 @@
 
     public EncryptionKey getKeyForPrincipal(KerberosPrincipal principal)
     {
-        System.out.println(principal.getName());
-
                EncryptionKey key = null;
 
                try {
@@ -212,5 +211,18 @@
 
                return authenticator;
        }
+
+    protected void echoTicket(EncTicketPartModifier newTicketBody, Ticket tgt)
+    {
+        newTicketBody.setAuthorizationData(tgt.getAuthorizationData());
+        newTicketBody.setAuthTime(tgt.getAuthTime());
+        newTicketBody.setClientAddresses(tgt.getClientAddresses());
+        newTicketBody.setClientPrincipal(tgt.getClientPrincipal());
+        newTicketBody.setEndTime(tgt.getEndTime());
+        newTicketBody.setFlags(tgt.getFlags());
+        newTicketBody.setRenewTill(tgt.getRenewTill());
+        newTicketBody.setSessionKey(tgt.getSessionKey());
+        newTicketBody.setTransitedEncoding(tgt.getTransitedEncoding());
+    }
 }
 

Modified: 
incubator/directory/kerberos/trunk/kerberos/src/java/org/apache/kerberos/kdc/TicketGrantingService.java
==============================================================================
--- 
incubator/directory/kerberos/trunk/kerberos/src/java/org/apache/kerberos/kdc/TicketGrantingService.java
     (original)
+++ 
incubator/directory/kerberos/trunk/kerberos/src/java/org/apache/kerberos/kdc/TicketGrantingService.java
     Tue Nov  9 22:02:23 2004
@@ -54,7 +54,7 @@
     {
         super(config, bootstrap, store);
 
-               this.config    = config;
+               this.config = config;
        }
        
        public TicketGrantReply getReplyFor(KdcRequest request) throws 
KerberosException, IOException {
@@ -98,9 +98,7 @@
                
                return authHeader;
        }
-       
 
-       
        // TODO - configurable checksum
        private void verifyBodyChecksum(Checksum authChecksum, KdcRequest 
request)
                        throws KerberosException {
@@ -258,7 +256,7 @@
                endif
                */
                        
-                       // TODO - tkt = tgt;
+                       echoTicket(newTicketBody, tgt);
                        newTicketBody.clearFlag(TicketFlags.INVALID);
                }
 
@@ -277,27 +275,16 @@
                
                KerberosTime renewalTime = null;
                
-               if (request.getOption(KdcOptions.RENEW)) {
-                       /* 
-                        * Note that if the endtime has already passed, the 
ticket would have been
-                        * rejected in the initial authentication stage, so 
there is no need to check again here
-                        */          
+               if (request.getOption(KdcOptions.RENEW))
+        {
                        if (!tgt.getFlag(TicketFlags.RENEWABLE))
                                throw KerberosException.KDC_ERR_BADOPTION;
                        if (tgt.getRenewTill().greaterThan(now))
                                throw KerberosException.KRB_AP_ERR_TKT_EXPIRED;
-                       
-                       
newTicketBody.setAuthorizationData(tgt.getAuthorizationData());
-                       newTicketBody.setAuthTime(tgt.getAuthTime());
-                       
newTicketBody.setClientAddresses(tgt.getClientAddresses());
-                       
newTicketBody.setClientPrincipal(tgt.getClientPrincipal());
-                       newTicketBody.setEndTime(tgt.getEndTime());
-                       newTicketBody.setFlags(tgt.getFlags());
-                       newTicketBody.setRenewTill(tgt.getRenewTill());
-                       newTicketBody.setSessionKey(tgt.getSessionKey());
-                       
newTicketBody.setTransitedEncoding(tgt.getTransitedEncoding());
-                       
-                       newTicketBody.setStartTime(now);
+
+            echoTicket(newTicketBody, tgt);
+
+            newTicketBody.setStartTime(now);
                        long oldLife = tgt.getEndTime().getTime() - 
tgt.getStartTime().getTime();
                        newTicketBody.setEndTime(new 
KerberosTime(Math.min(tgt.getRenewTill().getTime(), now.getTime() + oldLife)));
                } else {
@@ -356,8 +343,8 @@
                        
newTicketBody.setRenewTill((KerberosTime)Collections.min(minimizer));
                }
        }
-       
-       private AuthorizationData processAuthorizationData(KdcRequest request,
+
+    private AuthorizationData processAuthorizationData(KdcRequest request,
                        Authenticator authHeader, Ticket tgt) throws 
KerberosException {
 
                AuthorizationData authData = null;
@@ -403,14 +390,16 @@
        private EncryptedData encryptTicketPart(EncTicketPart newTicketBody, 
EncryptionKey serverKey,
                        KdcRequest request) throws KerberosException {
                
-               byte[] encodedTicket;
+               byte[] encodedTicket = null;
                
                EncTicketPartEncoder encoder = new EncTicketPartEncoder();
-               try {
+               try
+        {
                        encodedTicket = encoder.encode(newTicketBody);
-               } catch (IOException ioe) {
-                       // TODO - figure out right error for ASN.1 generation 
error
-                       throw KerberosException.KRB_ERR_GENERIC;
+               }
+        catch (IOException ioe)
+        {
+                       ioe.printStackTrace();
                }
                
                if (request.getOption(KdcOptions.ENC_TKT_IN_SKEY)) {

Reply via email to