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 2004/10/05 20:25:02 UTC

svn commit: rev 53816 - incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/components

Author: erodriguez
Date: Tue Oct  5 11:24:56 2004
New Revision: 53816

Added:
   incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/components/Authenticator.java
   incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/components/MessageComponentType.java
   incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/components/Ticket.java
Log:
primary kerberos message components

Added: incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/components/Authenticator.java
==============================================================================
--- (empty file)
+++ incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/components/Authenticator.java	Tue Oct  5 11:24:56 2004
@@ -0,0 +1,110 @@
+/*
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+package org.apache.kerberos.messages.components;
+
+import org.apache.kerberos.kdc.*;
+import org.apache.kerberos.messages.value.*;
+
+public class Authenticator {
+	
+	private int               _versionNumber;
+	private Realm             _clientRealm;
+	private PrincipalName     _clientName;
+	private Checksum          _checksum;
+	private int               _clientMicroSecond;
+	private KerberosTime      _clientTime;
+	private EncryptionKey     _subSessionKey;
+	private int               _sequenceNumber;
+	private AuthorizationData _authorizationData;
+	
+	public Authenticator() {
+		// TODO - probably temp
+	}
+
+	public Authenticator(Realm crealm, PrincipalName cname, Checksum cksum,	int cusec,
+			KerberosTime ctime, EncryptionKey subKey, int seqNumber,
+			AuthorizationData authorizationData) {
+		
+		_versionNumber     = LocalConfig.AUTHENTICATOR_VNO;
+		_clientRealm       = crealm;
+		_clientName        = cname;
+		_checksum          = cksum;
+		_clientMicroSecond = cusec;
+		_clientTime        = ctime;
+		_subSessionKey     = subKey;
+		_sequenceNumber    = seqNumber;
+		_authorizationData = authorizationData;
+	}
+	
+	public PrincipalName getClientName() {
+		return _clientName;
+	}
+	public Realm getClientRealm() {
+		return _clientRealm;
+	}
+	public KerberosTime getClientTime() {
+		return _clientTime;
+	}
+	public int getClientMicroSecond() {
+		return _clientMicroSecond;
+	}
+	public AuthorizationData getAuthorizationData() {
+		return _authorizationData;
+	}
+	public Checksum getChecksum() {
+		return _checksum;
+	}
+	public int getSequenceNumber() {
+		return _sequenceNumber;
+	}
+	public EncryptionKey getSubSessionKey() {
+		return _subSessionKey;
+	}
+	public int getVersionNumber() {
+		return _versionNumber;
+	}
+	
+	// setters
+	public void setAuthorizationData(AuthorizationData data) {
+		_authorizationData = data;
+	}
+	public void setChecksum(Checksum checksum) {
+		_checksum = checksum;
+	}
+	public void setClientMicroSecond(int microSecond) {
+		_clientMicroSecond = microSecond;
+	}
+	public void setClientName(PrincipalName name) {
+		_clientName = name;
+	}
+	public void setClientRealm(Realm realm) {
+		_clientRealm = realm;
+	}
+	public void setClientTime(KerberosTime time) {
+		_clientTime = time;
+	}
+	public void setSequenceNumber(int number) {
+		_sequenceNumber = number;
+	}
+	public void setSubSessionKey(EncryptionKey sessionKey) {
+		_subSessionKey = sessionKey;
+	}
+	public void setVersionNumber(int number) {
+		_versionNumber = number;
+	}
+}
+

Added: incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/components/MessageComponentType.java
==============================================================================
--- (empty file)
+++ incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/components/MessageComponentType.java	Tue Oct  5 11:24:56 2004
@@ -0,0 +1,80 @@
+/*
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+package org.apache.kerberos.messages.components;
+
+import java.util.*;
+
+/**
+ * Type-safe enumerator for message component types
+ */
+public class MessageComponentType implements Comparable {
+	/**
+	 * Enumeration elements are constructed once upon class loading.
+	 * Order of appearance here determines the order of compareTo.
+	 */
+	public static final MessageComponentType NULL                  = new MessageComponentType(0,  "null");
+	public static final MessageComponentType KRB_TKT               = new MessageComponentType(1,  "ticket");
+	public static final MessageComponentType KRB_AUTHENTICATOR     = new MessageComponentType(2,  "authenticator");
+	public static final MessageComponentType KRB_ENC_TKT_PART      = new MessageComponentType(3,  "encrypted ticket part");
+	public static final MessageComponentType KRB_ENC_AS_REP_PART   = new MessageComponentType(25, "encrypted initial authentication part");
+	public static final MessageComponentType KRB_ENC_TGS_REP_PART  = new MessageComponentType(26, "encrypted TGS request part");
+	public static final MessageComponentType KRB_ENC_AP_REP_PART   = new MessageComponentType(27, "encrypted application request part");
+	public static final MessageComponentType KRB_ENC_KRB_PRIV_PART = new MessageComponentType(28, "encrypted application message part");
+	public static final MessageComponentType KRB_ENC_KRB_CRED_PART = new MessageComponentType(29, "encrypted credentials forward part");
+
+	public String toString() {
+		return _fName + " (" + _fOrdinal + ")";
+	}
+
+	public int compareTo(Object that) {
+		return _fOrdinal - ((MessageComponentType) that)._fOrdinal;
+	}
+
+	public static MessageComponentType getTypeByOrdinal(int type) {
+		for (int i = 0; i < fValues.length; i++)
+			if (fValues[i]._fOrdinal == type)
+				return fValues[i];
+		return NULL;
+	}
+	
+	public int getOrdinal() {
+		return _fOrdinal;
+	}
+
+	/// PRIVATE /////
+	private final String _fName;
+	private final int    _fOrdinal;
+
+	/**
+	 * Private constructor prevents construction outside of this class.
+	 */
+	private MessageComponentType(int ordinal, String name) {
+		_fOrdinal = ordinal;
+		_fName    = name;
+	}
+
+	/**
+	 * These two lines are all that's necessary to export a List of VALUES.
+	 */
+	private static final MessageComponentType[] fValues = {NULL, KRB_TKT, KRB_AUTHENTICATOR,
+			KRB_ENC_TKT_PART, KRB_ENC_AS_REP_PART, KRB_ENC_TGS_REP_PART, KRB_ENC_AP_REP_PART,
+			KRB_ENC_KRB_PRIV_PART, KRB_ENC_KRB_CRED_PART};
+	// VALUES needs to be located here, otherwise illegal forward reference
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(fValues));
+
+}
+

Added: incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/components/Ticket.java
==============================================================================
--- (empty file)
+++ incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/components/Ticket.java	Tue Oct  5 11:24:56 2004
@@ -0,0 +1,158 @@
+/*
+ *   Copyright 2004 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *   limitations under the License.
+ *
+ */
+package org.apache.kerberos.messages.components;
+
+import org.apache.kerberos.kdc.*;
+import org.apache.kerberos.messages.value.*;
+
+/**
+ * Ticket message component as handed out by the ticket granting service
+ */
+public class Ticket {
+
+	private int           _ticketVersionNumber;
+	private Realm         _realm;
+	private PrincipalName _serverName;
+	
+	private EncTicketPart _encTicketPart = new EncTicketPart();
+	private EncryptedData _encPart       = new EncryptedData();
+	
+	public Ticket() {
+		_ticketVersionNumber = LocalConfig.TICKET_VNO;
+		// used to generate new Tickets during reply construction
+	}
+
+	public Ticket(Realm realm, PrincipalName serverName, EncryptedData encPart) {
+		_ticketVersionNumber = LocalConfig.TICKET_VNO;
+		_realm               = realm;
+		_serverName          = serverName;
+		_encPart             = encPart;
+	}
+	
+	// getters
+	public EncryptedData getEncPart() {
+		return _encPart;
+	}
+	public Realm getRealm() {
+		return _realm;
+	}
+	public PrincipalName getServerName() {
+		return _serverName;
+	}
+	public int getTicketVersionNumber() {
+		return _ticketVersionNumber;
+	}
+	
+	// setters
+	public void setEncTicketPart(EncTicketPart part) {
+		_encTicketPart = part;
+	}
+	public void setEncPart(EncryptedData part) {
+		_encPart = part;
+	}
+	public void setRealm(Realm _realm) {
+		this._realm = _realm;
+	}
+	public void setServerName(PrincipalName name) {
+		_serverName = name;
+	}
+	public void setTicketVersionNumber(int versionNumber) {
+		_ticketVersionNumber = versionNumber;
+	}
+	
+	// EncTicketPart delegate getters
+	public AuthorizationData getAuthorizationData() {
+		return _encTicketPart.getAuthorizationData();
+	}
+	public KerberosTime getAuthtime() {
+		return _encTicketPart.getAuthtime();
+	}
+	public HostAddresses getClientAddresses() {
+		return _encTicketPart.getClientAddresses();
+	}
+	public PrincipalName getClientName() {
+		return _encTicketPart.getClientName();
+	}
+	public Realm getClientRealm() {
+		return _encTicketPart.getClientRealm();
+	}
+	public KerberosTime getEndTime() {
+		return _encTicketPart.getEndTime();
+	}
+	public TicketFlags getFlags() {
+		return _encTicketPart.getFlags();
+	}
+	public KerberosTime getRenewTill() {
+		return _encTicketPart.getRenewTill();
+	}
+	public EncryptionKey getSessionKey() {
+		return _encTicketPart.getSessionKey();
+	}
+	public KerberosTime getStartTime() {
+		return _encTicketPart.getStartTime();
+	}
+	public TransitedEncoding getTransitedEncoding() {
+		return _encTicketPart.getTransitedEncoding();
+	}
+	
+	// EncTicketPart TicketFlag delegates 
+	public boolean getFlag(int flag) {
+		return _encTicketPart.getFlags().get(flag);
+	}
+	public void setFlag(int flag) {
+		_encTicketPart.getFlags().set(flag);
+	}
+	public void clearFlag(int flag) {
+		_encTicketPart.getFlags().clear(flag);
+	}
+	
+	// EncTicketPart delegate setters 
+	public void setAuthorizationData(AuthorizationData data) {
+		_encTicketPart.setAuthorizationData(data);
+	}
+	public void setAuthtime(KerberosTime authtime) {
+		_encTicketPart.setAuthtime(authtime);
+	}
+	public void setClientAddresses(HostAddresses addresses) {
+		_encTicketPart.setClientAddresses(addresses);
+	}
+	public void setClientName(PrincipalName name) {
+		_encTicketPart.setClientName(name);
+	}
+	public void setClientRealm(Realm realm) {
+		_encTicketPart.setClientRealm(realm);
+	}
+	public void setEndTime(KerberosTime time) {
+		_encTicketPart.setEndTime(time);
+	}
+	public void setFlags(TicketFlags flags) {
+		_encTicketPart.setFlags(flags);
+	}
+	public void setRenewTill(KerberosTime till) {
+		_encTicketPart.setRenewTill(till);
+	}
+	public void setSessionKey(EncryptionKey key) {
+		_encTicketPart.setSessionKey(key);
+	}
+	public void setStartTime(KerberosTime time) {
+		_encTicketPart.setStartTime(time);
+	}
+	public void setTransitedEncoding(TransitedEncoding encoding) {
+		_encTicketPart.setTransitedEncoding(encoding);
+	}
+}
+