--- a/jdk/src/share/classes/sun/security/krb5/internal/Ticket.java Mon Jul 09 22:26:08 2012 +0100
+++ b/jdk/src/share/classes/sun/security/krb5/internal/Ticket.java Wed Jul 11 17:10:34 2012 +0800
@@ -60,7 +60,6 @@
public class Ticket implements Cloneable {
public int tkt_vno;
- public Realm realm;
public PrincipalName sname;
public EncryptedData encPart;
@@ -69,7 +68,6 @@
public Object clone() {
Ticket new_ticket = new Ticket();
- new_ticket.realm = (Realm)realm.clone();
new_ticket.sname = (PrincipalName)sname.clone();
new_ticket.encPart = (EncryptedData)encPart.clone();
new_ticket.tkt_vno = tkt_vno;
@@ -77,12 +75,10 @@
}
public Ticket(
- Realm new_realm,
PrincipalName new_sname,
EncryptedData new_encPart
) {
tkt_vno = Krb5.TICKET_VNO;
- realm = new_realm;
sname = new_sname;
encPart = new_encPart;
}
@@ -123,8 +119,8 @@
tkt_vno = subDer.getData().getBigInteger().intValue();
if (tkt_vno != Krb5.TICKET_VNO)
throw new KrbApErrException(Krb5.KRB_AP_ERR_BADVERSION);
- realm = Realm.parse(der.getData(), (byte)0x01, false);
- sname = PrincipalName.parse(der.getData(), (byte)0x02, false);
+ Realm srealm = Realm.parse(der.getData(), (byte)0x01, false);
+ sname = PrincipalName.parse(der.getData(), (byte)0x02, false, srealm);
encPart = EncryptedData.parse(der.getData(), (byte)0x03, false);
if (der.getData().available() > 0)
throw new Asn1Exception(Krb5.ASN1_BAD_ID);
@@ -142,7 +138,7 @@
DerValue der[] = new DerValue[4];
temp.putInteger(BigInteger.valueOf(tkt_vno));
bytes.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x00), temp);
- bytes.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x01), realm.asn1Encode());
+ bytes.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x01), sname.getRealm().asn1Encode());
bytes.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x02), sname.asn1Encode());
bytes.write(DerValue.createTag(DerValue.TAG_CONTEXT, true, (byte)0x03), encPart.asn1Encode());
temp = new DerOutputStream();