From 46b917af787103ce372ee8f14c5bd398abcc165b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com>
Date: Mon, 18 Jul 2022 09:11:23 +0200
Subject: [PATCH] FIX: toString is overwritten by subclassses; use realm and
 username directly

---
 src/main/java/org/caosdb/server/query/Query.java | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/caosdb/server/query/Query.java b/src/main/java/org/caosdb/server/query/Query.java
index 570435fc..6861f081 100644
--- a/src/main/java/org/caosdb/server/query/Query.java
+++ b/src/main/java/org/caosdb/server/query/Query.java
@@ -49,6 +49,7 @@ import org.caosdb.api.entity.v1.MessageCode;
 import org.caosdb.datetime.UTCDateTime;
 import org.caosdb.server.CaosDBServer;
 import org.caosdb.server.ServerProperties;
+import org.caosdb.server.accessControl.Principal;
 import org.caosdb.server.caching.Cache;
 import org.caosdb.server.database.access.Access;
 import org.caosdb.server.database.backend.implementation.MySQL.ConnectionException;
@@ -1007,7 +1008,11 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac
   String getCacheKey() {
     final StringBuilder sb = new StringBuilder();
     if (this.user != null) {
-      sb.append(this.user.getPrincipal().toString());
+      String principal_desc =
+          ((Principal) this.user.getPrincipal()).getUsername()
+              + Principal.REALM_SEPARATOR
+              + ((Principal) this.user.getPrincipal()).getRealm();
+      sb.append(principal_desc);
     }
     if (this.versioned) {
       sb.append("versioned");
-- 
GitLab