Author: erodriguez
Date: Tue Nov 2 20:12:07 2004
New Revision: 56469
Modified:
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/value/LastRequest.java
Log:
Implemented LastRequest handling.
Modified:
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java
==============================================================================
---
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java
(original)
+++
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java
Tue Nov 2 20:12:07 2004
@@ -181,7 +181,7 @@
protected HostAddress decodeHostAddress(DERSequence sequence) {
HostAddressType type = HostAddressType.NULL;
- byte[] value = new byte[0];
+ byte[] value = null;
for (Enumeration e = sequence.getObjects();
e.hasMoreElements();) {
DERTaggedObject object = ((DERTaggedObject)
e.nextElement());
@@ -288,13 +288,51 @@
lr-type[0] INTEGER,
lr-value[1] KerberosTime
}*/
- protected void decodeLastRequest() {};
+ protected LastRequest decodeLastRequest(DERSequence sequence) {
+
+ LastRequestEntry[] entries = new
LastRequestEntry[sequence.size()];
+
+ int i = 0;
+ for (Enumeration e = sequence.getObjects();
e.hasMoreElements();) {
+ DERSequence object = ((DERSequence) e.nextElement());
+ LastRequestEntry entry = decodeLastRequestEntry(object);
+ entries[i] = entry;
+ i++;
+ }
+
+ return new LastRequest(entries);
+ }
+
+ protected LastRequestEntry decodeLastRequestEntry(DERSequence sequence)
{
+
+ LastRequestType type = LastRequestType.NONE;
+ KerberosTime value = null;
+
+ for (Enumeration e = sequence.getObjects();
e.hasMoreElements();) {
+ DERTaggedObject object = ((DERTaggedObject)
e.nextElement());
+ int tag = object.getTagNo();
+ DERObject derObject = object.getObject();
+ switch (tag) {
+ case 0:
+ DERInteger tag0 = (DERInteger)derObject;
+ type =
LastRequestType.getTypeByOrdinal(tag0.getValue().intValue());
+ break;
+ case 1:
+ DERGeneralizedTime tag1 =
(DERGeneralizedTime)derObject;
+ value = decodeKerberosTime(tag1);
+ break;
+ default:
+ System.out.println(derObject);
+ break;
+ }
+ }
+ return new LastRequestEntry(type, value);
+ }
/*
- TransitedEncoding ::= SEQUENCE {
- tr-type[0] INTEGER, -- must be registered
- contents[1] OCTET STRING
- }*/
+ * TransitedEncoding ::= SEQUENCE { tr-type[0] INTEGER, -- must be
+ * registered contents[1] OCTET STRING }
+ */
protected TransitedEncoding decodeTransitedEncoding(DERSequence
sequence) {
TransitedEncodingType type = TransitedEncodingType.NULL;
byte[] contents = null;
Modified:
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/value/LastRequest.java
==============================================================================
---
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/value/LastRequest.java
(original)
+++
incubator/directory/kerberos/trunk/source/main/org/apache/kerberos/messages/value/LastRequest.java
Tue Nov 2 20:12:07 2004
@@ -24,6 +24,10 @@
_entries[0] = new LastRequestEntry(LastRequestType.NONE, new
KerberosTime());
}
+ public LastRequest(LastRequestEntry[] entries) {
+ _entries = entries;
+ }
+
public LastRequestEntry[] getEntries() {
return _entries;
}