diff --git a/src/test/java/org/caosdb/server/query/QueryTest.java b/src/test/java/org/caosdb/server/query/QueryTest.java
index c1e53294ca4731c84ed0106c26765ec300731bb2..1755023f434c5bfa63f0e47ba80116c2c7119e47 100644
--- a/src/test/java/org/caosdb/server/query/QueryTest.java
+++ b/src/test/java/org/caosdb/server/query/QueryTest.java
@@ -26,7 +26,11 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
 
 import java.io.IOException;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.subject.Subject;
 import org.caosdb.server.CaosDBServer;
+import org.caosdb.server.ServerProperties;
+import org.caosdb.server.accessControl.AnonymousAuthenticationToken;
 import org.caosdb.server.database.access.InitAccess;
 import org.caosdb.server.transaction.WriteTransaction;
 import org.junit.BeforeClass;
@@ -37,6 +41,7 @@ public class QueryTest {
   @BeforeClass
   public static void initServerProperties() throws IOException {
     CaosDBServer.initServerProperties();
+    CaosDBServer.initShiro();
   }
 
   String getCacheKey(String query) {
@@ -45,6 +50,15 @@ public class QueryTest {
     return q.getCacheKey(true);
   }
 
+  String getCacheKeyWithUser(String query) {
+	    Subject anonymous = SecurityUtils.getSubject();
+	    CaosDBServer.setProperty(ServerProperties.KEY_AUTH_OPTIONAL, "true");
+	    anonymous.login(AnonymousAuthenticationToken.getInstance());
+    Query q = new Query(query, anonymous);
+    q.parse();
+    return q.getCacheKey(true);
+  }
+
   @Test
   public void testGetKey() {
     assertEquals("enamePOV(pname,=,val1)", getCacheKey("FIND ename WITH pname = val1"));
@@ -72,6 +86,8 @@ public class QueryTest {
     assertEquals(
         "ename@(ref1,null)SUB(POV(pname,>,val1)",
         getCacheKey("FIND ename WHICH IS REFERENCED BY ref1 WITH pname > val1 "));
+
+    assertEquals("anonymous@anonymous@enamePOV(pname,=,val1)", getCacheKeyWithUser("FIND ename WITH pname = val1"));
   }
 
   @Test