The issue was caused by this change:
public class EncTicketPart extends KrbAppSequenceType {
public static final int TAG = 3;
- protected enum MyEnum implements EnumType {
+ protected enum EncTicketPartField implements EnumType {
FLAGS,
KEY,
CREALM,
@@ -77,17 +75,17 @@ public String getName() {
}
static Asn1FieldInfo[] fieldInfos = new Asn1FieldInfo[] {
- new ExplicitField(FLAGS, 0, TicketFlags.class),
- new ExplicitField(KEY, 1, EncryptionKey.class),
- new ExplicitField(CREALM, 2, KerberosString.class),
- new ExplicitField(CNAME, 3, PrincipalName.class),
- new ExplicitField(TRANSITED, 4, TransitedEncoding.class),
- new ExplicitField(AUTHTIME, 5, KerberosTime.class),
- new ExplicitField(STARTTIME, 6, KerberosTime.class),
- new ExplicitField(ENDTIME, 7, KerberosTime.class),
- new ExplicitField(ENDTIME, 8, KerberosTime.class),
- new ExplicitField(CADDR, 9, HostAddresses.class),
- new ExplicitField(AUTHORIZATION_DATA, 10, AuthorizationData.class)
+ new ExplicitField(EncTicketPartField.FLAGS, TicketFlags.class),
+ new ExplicitField(EncTicketPartField.KEY, EncryptionKey.class),
+ new ExplicitField(EncTicketPartField.CREALM, KerberosString.class),
+ new ExplicitField(EncTicketPartField.CNAME, PrincipalName.class),
+ new ExplicitField(EncTicketPartField.TRANSITED,
TransitedEncoding.class),
+ new ExplicitField(EncTicketPartField.AUTHTIME, KerberosTime.class),
+ new ExplicitField(EncTicketPartField.STARTTIME,
KerberosTime.class),
+ new ExplicitField(EncTicketPartField.ENDTIME, KerberosTime.class),
+ new ExplicitField(EncTicketPartField.ENDTIME, KerberosTime.class),
+ new ExplicitField(EncTicketPartField.CADDR, HostAddresses.class),
+ new ExplicitField(EncTicketPartField.AUTHORIZATION_DATA,
AuthorizationData.class)
};
We can see that the change is perfect and nothing bad. So what's the bad?
The fix is simple:
diff --git
a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/ticket/EncTicketPart.java
b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/ticket/EncTicketPart.java
index 9428630..e7ca968 100644
---
a/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/ticket/EncTicketPart.java
+++
b/kerby-kerb/kerb-core/src/main/java/org/apache/kerby/kerberos/kerb/type/ticket/EncTicketPart.java
@@ -83,7 +83,7 @@ public class EncTicketPart extends KrbAppSequenceType {
new ExplicitField(EncTicketPartField.AUTHTIME, KerberosTime.class),
new ExplicitField(EncTicketPartField.STARTTIME,
KerberosTime.class),
new ExplicitField(EncTicketPartField.ENDTIME, KerberosTime.class),
- new ExplicitField(EncTicketPartField.ENDTIME, KerberosTime.class),
+ new ExplicitField(EncTicketPartField.RENEW_TILL,
KerberosTime.class),
new ExplicitField(EncTicketPartField.CADDR, HostAddresses.class),
new ExplicitField(EncTicketPartField.AUTHORIZATION_DATA,
AuthorizationData.class)
};
Right, we can see that the change actually exposed a previous coding error (the
2nd ENDTIME SHOULD BE RENEW_TILL), and the fix is just correcting the error.
I'm describing this just for fun. It's interesting.
Regards,
Kai
From: Zheng, Kai
Sent: Friday, December 25, 2015 6:48 AM
To: [email protected]
Subject: Kerby building failed
Hi,
Kerby building failed. Don't worry, I have figured it out.
Results :
Tests in error:
EncryptionTest.testAes128:72->testEncWith:124 ▒ Krb Decoding failed
EncryptionTest.testAes256:79->testEncWith:124 ▒ Krb Decoding failed
EncryptionTest.testCamellia128:89->testEncWith:124 ▒ Krb Decoding failed
EncryptionTest.testCamellia256:94->testEncWith:124 ▒ Krb Decoding failed
EncryptionTest.testDes3CbcSha1:104->testEncWith:124 ▒ Krb Decoding failed
EncryptionTest.testDesCbcCrc:99->testEncWith:124 ▒ Krb Decoding failed
EncryptionTest.testRc4:84->testEncWith:124 ▒ Krb Decoding failed
Tests run: 20, Failures: 0, Errors: 7, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Kerby Build Tools .................................. SUCCESS [ 1.813 s]
[INFO] Apache Kerby Project ............................... SUCCESS [ 3.912 s]
[INFO] Kerby Config ....................................... SUCCESS [ 5.381 s]
[INFO] Kerby Util ......................................... SUCCESS [ 4.184 s]
[INFO] Kerby ASN1 Project ................................. SUCCESS [ 6.410 s]
[INFO] Kerby PKIX Project ................................. SUCCESS [ 24.748 s]
[INFO] Kerby-kerb Project ................................. SUCCESS [ 0.315 s]
[INFO] Kerby-kerb core .................................... SUCCESS [ 9.317 s]
[INFO] Kerby-kerb Crypto .................................. SUCCESS [ 11.249 s]
[INFO] Kerby-kerb Common .................................. SUCCESS [ 1.483 s]
[INFO] Kerby-kerb Util .................................... FAILURE [ 4.485 s]
[INFO] Kerby-kerb Identity ................................ SKIPPED
[INFO] Kerby-kerb Identity Test ........................... SKIPPED
[INFO] Kerby-kerb Client .................................. SKIPPED
[INFO] Kerby-kerb Server .................................. SKIPPED
[INFO] Kerby-kerb Admin ................................... SKIPPED
[INFO] Kerb Simple Kdc .................................... SKIPPED
[INFO] Kerb Kdc Test ...................................... SKIPPED
[INFO] Kerby providers .................................... SKIPPED
[INFO] Token provider ..................................... SKIPPED
[INFO] Kerb Integration Test .............................. SKIPPED
[INFO] Kerby-kerb client api all .......................... SKIPPED
[INFO] Kerby-kerb server all .............................. SKIPPED
[INFO] Kerby KDC Server ................................... SKIPPED
[INFO] Kdc Tool Project ................................... SKIPPED
[INFO] Client Tool ........................................ SKIPPED
[INFO] KDC Tool ........................................... SKIPPED
[INFO] Kerby Backend ...................................... SKIPPED
[INFO] Json identity backend .............................. SKIPPED
[INFO] Zookeeper identity backend ......................... SKIPPED
[INFO] Ldap identity backend .............................. SKIPPED
[INFO] Kerby Kdc Test ..................................... SKIPPED
[INFO] Mavibot based backend .............................. SKIPPED
[INFO] Kerby Distribution ................................. SKIPPED
[INFO] KDC Dist ........................................... SKIPPED
[INFO] Tool Dist .......................................... SKIPPED
[INFO] Kerby benchmark .................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:14 min
[INFO] Finished at: 2015-12-25T06:46:18+08:00
[INFO] Final Memory: 39M/351M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on
project kerb-util: There are test failures.
[ERROR]
[ERROR] Please refer to
C:\work\projects\kerby\kerby-kerb\kerb-util\target\surefire-reports for the
individual test results.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e
switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please
read the following articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :kerb-util
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true