From 0f4075288605c47fbb32e0e99fcf37542e60356f Mon Sep 17 00:00:00 2001 From: CNE FICHEPOIL Pierre Date: Fri, 11 Apr 2025 17:23:26 +0200 Subject: [PATCH 1/2] fix: improve root user password check logic in ServerSecurity --- .../main/java/com/arcadedb/server/security/ServerSecurity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/main/java/com/arcadedb/server/security/ServerSecurity.java b/server/src/main/java/com/arcadedb/server/security/ServerSecurity.java index 6eb6b91122..b465c34233 100644 --- a/server/src/main/java/com/arcadedb/server/security/ServerSecurity.java +++ b/server/src/main/java/com/arcadedb/server/security/ServerSecurity.java @@ -125,7 +125,7 @@ public void loadUsers() { } } - if (users.isEmpty() || (users.containsKey("root") && users.get("root").getPassword() == null)) + if (users.isEmpty() || !users.containsKey("root") || (users.containsKey("root") && users.get("root").getPassword() == null)) askForRootPassword(); final long fileLastModified = usersRepository.getFileLastModified(); From 95047eb7e9f3cc68a5b0fde6a1ac11667f84e9b1 Mon Sep 17 00:00:00 2001 From: CNE FICHEPOIL Pierre Date: Fri, 11 Apr 2025 19:02:22 +0200 Subject: [PATCH 2/2] fixes #2150 --- .../java/com/arcadedb/server/security/ServerSecurity.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/com/arcadedb/server/security/ServerSecurity.java b/server/src/main/java/com/arcadedb/server/security/ServerSecurity.java index b465c34233..81a1abb3db 100644 --- a/server/src/main/java/com/arcadedb/server/security/ServerSecurity.java +++ b/server/src/main/java/com/arcadedb/server/security/ServerSecurity.java @@ -24,6 +24,7 @@ import com.arcadedb.database.DatabaseInternal; import com.arcadedb.log.LogManager; import com.arcadedb.security.SecurityManager; +import com.arcadedb.serializer.json.JSONArray; import com.arcadedb.serializer.json.JSONException; import com.arcadedb.serializer.json.JSONObject; import com.arcadedb.server.ArcadeDBServer; @@ -447,7 +448,9 @@ protected void askForRootPassword() throws IOException { getUser("root").setPassword(encodedPassword); saveUsers(); } else - createUser(new JSONObject().put("name", "root").put("password", encodedPassword)); + createUser(new JSONObject().put("name", "root") + .put("password", encodedPassword) + .put("databases", new JSONObject().put(SecurityManager.ANY, new JSONArray(new String[] { "admin" })))); } protected JSONObject getDatabaseGroupsConfiguration(final String databaseName) {