This is an automated email from the ASF dual-hosted git repository.
smolnar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git
The following commit(s) were added to refs/heads/master by this push:
new 66eb49549 KNOX-3042 - Correct KnoxToken comparator (#918)
66eb49549 is described below
commit 66eb49549da28a23dd98bd69d69d8e3b5ddd0ed0
Author: bonampak <[email protected]>
AuthorDate: Thu Jul 17 09:21:57 2025 +0200
KNOX-3042 - Correct KnoxToken comparator (#918)
---
.../apache/knox/gateway/services/security/token/KnoxToken.java | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git
a/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/token/KnoxToken.java
b/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/token/KnoxToken.java
index cd4b982c1..57245a377 100644
---
a/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/token/KnoxToken.java
+++
b/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/token/KnoxToken.java
@@ -20,10 +20,15 @@ package org.apache.knox.gateway.services.security.token;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Collections;
+import java.util.Comparator;
import java.util.Date;
import java.util.Locale;
-public class KnoxToken implements Comparable<KnoxToken>{
+public class KnoxToken implements Comparable<KnoxToken> {
+ private static final Comparator<KnoxToken> COMPARATOR = Comparator
+ .comparingLong((KnoxToken kt) -> kt.issueTime)
+ .thenComparing(kt -> kt.tokenId);
+
public static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
// SimpleDateFormat is not thread safe must use as a ThreadLocal
private static final ThreadLocal<DateFormat> KNOX_TOKEN_TS_FORMAT =
ThreadLocal
@@ -93,7 +98,7 @@ public class KnoxToken implements Comparable<KnoxToken>{
@Override
public int compareTo(KnoxToken other) {
- return Long.compare(this.issueTime, other.issueTime);
+ return COMPARATOR.compare(this, other);
}
public void addMetadata(String name, String value) {