From a7c6b03e8f1aaec5186a6265f529747421d2a75f Mon Sep 17 00:00:00 2001 From: Timm Fitschen <timm.fitschen@ds.mpg.de> Date: Tue, 4 Dec 2018 14:38:17 +0100 Subject: [PATCH] FIX: user-info for users without any roles --- src/main/java/caosdb/server/CaosAuthenticator.java | 2 +- src/main/java/caosdb/server/CaosDBServer.java | 4 +++- .../server/resource/AbstractCaosDBServerResource.java | 11 +++++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/caosdb/server/CaosAuthenticator.java b/src/main/java/caosdb/server/CaosAuthenticator.java index efe02c15..0cc6cc3d 100644 --- a/src/main/java/caosdb/server/CaosAuthenticator.java +++ b/src/main/java/caosdb/server/CaosAuthenticator.java @@ -66,7 +66,7 @@ public class CaosAuthenticator extends Authenticator { // anonymous users if (!subject.isAuthenticated() && CaosDBServer.getServerProperty(ServerProperties.KEY_AUTH_OPTIONAL) - .equalsIgnoreCase("TRUE")) { + .equalsIgnoreCase("TRUE")) { subject.login(AuthenticationUtils.ANONYMOUS_USER); } return subject.isAuthenticated(); diff --git a/src/main/java/caosdb/server/CaosDBServer.java b/src/main/java/caosdb/server/CaosDBServer.java index c5ab6286..2aa6ad3a 100644 --- a/src/main/java/caosdb/server/CaosDBServer.java +++ b/src/main/java/caosdb/server/CaosDBServer.java @@ -277,7 +277,9 @@ public class CaosDBServer extends Application { // Create an application (this class). final Application application = new CaosDBServer(); - application.getStatusService().setContactEmail(getServerProperty(ServerProperties.KEY_ADMIN_EMAIL)); + application + .getStatusService() + .setContactEmail(getServerProperty(ServerProperties.KEY_ADMIN_EMAIL)); application .getStatusService() .setHomeRef(new Reference(getServerProperty(ServerProperties.KEY_CONTEXT_ROOT) + "/")); diff --git a/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java b/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java index e8bc5f49..709825c8 100644 --- a/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java +++ b/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java @@ -38,6 +38,7 @@ import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; import java.sql.SQLException; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.LinkedList; import java.util.NoSuchElementException; @@ -199,13 +200,15 @@ public abstract class AbstractCaosDBServerResource extends ServerResource { * @param user */ private void addRoles(Element userInfo, Subject user) { - Element roles = new Element("Roles"); - for (String role : UserSources.resolve(user.getPrincipals())) { + Collection<String> roles = UserSources.resolve(user.getPrincipals()); + if (roles == null) return; + Element rs = new Element("Roles"); + for (String role : roles) { Element r = new Element("Role"); r.addContent(role); - roles.addContent(r); + rs.addContent(r); } - userInfo.addContent(roles); + userInfo.addContent(rs); } /** -- GitLab