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 =