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) {

Reply via email to