diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 50402d780898d54b6b9ad10c98c3be04e2ed95b2..c57be2e52910e4dbd50cac289be110c3701afeba 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -58,7 +58,6 @@ test:
     - make easy-units
     - mvn antlr4:antlr4
     - mvn compile
-    - echo "defaultRealm = CaosDB" > conf/ext/usersources.ini
     - mvn test
 
 # Deploy: Trigger building of server image and integration tests
diff --git a/src/main/java/caosdb/server/accessControl/UserSources.java b/src/main/java/caosdb/server/accessControl/UserSources.java
index b4c0951e7f741e393bfc8f6bdfa0ec4ca92030e2..e09f7c242429140400ff9d3946ab88991021202d 100644
--- a/src/main/java/caosdb/server/accessControl/UserSources.java
+++ b/src/main/java/caosdb/server/accessControl/UserSources.java
@@ -30,7 +30,6 @@ import caosdb.server.transaction.RetrieveRoleTransaction;
 import caosdb.server.transaction.RetrieveUserTransaction;
 import caosdb.server.utils.ServerMessages;
 import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 import java.util.HashMap;
@@ -85,6 +84,11 @@ public class UserSources extends HashMap<String, UserSource> {
   private UserSources() {
     initMap();
     this.put(getInternalRealm());
+    if (this.map.getSection(Ini.DEFAULT_SECTION_NAME) == null
+        || !this.map.getSection(Ini.DEFAULT_SECTION_NAME).containsKey(KEY_REALMS)) {
+      // no realms defined
+      return;
+    }
     final String[] realms =
         this.map
             .getSectionProperty(Ini.DEFAULT_SECTION_NAME, KEY_REALMS)
@@ -135,10 +139,8 @@ public class UserSources extends HashMap<String, UserSource> {
         new FileInputStream(
             CaosDBServer.getServerProperty(ServerProperties.KEY_USER_SOURCES_INI_FILE))) {
       this.map.load(f);
-    } catch (final FileNotFoundException e) {
-      e.printStackTrace();
     } catch (final IOException e) {
-      e.printStackTrace();
+      logger.debug("could not load usersources.ini", e);
     }
   }
 
@@ -189,7 +191,7 @@ public class UserSources extends HashMap<String, UserSource> {
   }
 
   public static String getDefaultRealm() {
-    return instance.map.getSectionProperty(Ini.DEFAULT_SECTION_NAME, KEY_DEFAULT_REALM);
+    return instance.map.getSectionProperty(Ini.DEFAULT_SECTION_NAME, KEY_DEFAULT_REALM, "CaosDB");
   }
 
   public static Set<String> resolve(final Principal principal) {
diff --git a/src/test/java/caosdb/server/resource/TestScriptingResource.java b/src/test/java/caosdb/server/resource/TestScriptingResource.java
index 649c764712ad381f8e4a7c181ee9935dcb79f7fa..3280ae3af5a62174006b504408d7c3bde8a2632e 100644
--- a/src/test/java/caosdb/server/resource/TestScriptingResource.java
+++ b/src/test/java/caosdb/server/resource/TestScriptingResource.java
@@ -29,6 +29,7 @@ import caosdb.server.accessControl.AnonymousAuthenticationToken;
 import caosdb.server.accessControl.CredentialsValidator;
 import caosdb.server.accessControl.Principal;
 import caosdb.server.accessControl.Role;
+import caosdb.server.accessControl.UserSources;
 import caosdb.server.database.BackendTransaction;
 import caosdb.server.database.access.Access;
 import caosdb.server.database.backend.interfaces.RetrievePasswordValidatorImpl;
@@ -153,14 +154,16 @@ public class TestScriptingResource {
 
   @BeforeClass
   public static void setupShiro() throws IOException {
+    CaosDBServer.initServerProperties();
+    CaosDBServer.initShiro();
+
     BackendTransaction.setImpl(RetrieveRoleImpl.class, RetrieveRole.class);
     BackendTransaction.setImpl(RetrievePermissionRulesImpl.class, RetrievePermissionRules.class);
     BackendTransaction.setImpl(RetrieveUserImpl.class, RetrieveUser.class);
     BackendTransaction.setImpl(
         RetrievePasswordValidatorImpl.class, RetrievePasswordValidator.class);
 
-    CaosDBServer.initServerProperties();
-    CaosDBServer.initShiro();
+    UserSources.getDefaultRealm();
   }
 
   ScriptingResource resource =