From 11564bb7c3c3d9965510c6ecba7215bc27bd492c Mon Sep 17 00:00:00 2001 From: Ray Lee Date: Tue, 19 Jul 2016 17:32:49 -0700 Subject: [PATCH] DRYD-22: Clean up of current tenant determination code. --- .../WEB-INF/applicationContext-security.xml | 4 +- .../collectionspace/authentication/AuthN.java | 19 -------- .../authentication/CSpaceUser.java | 15 +++++++ .../authentication/spi/AuthNContext.java | 15 ------- .../spring/SpringAuthNContext.java | 44 ++----------------- 5 files changed, 21 insertions(+), 76 deletions(-) diff --git a/services/JaxRsServiceProvider/src/main/webapp/WEB-INF/applicationContext-security.xml b/services/JaxRsServiceProvider/src/main/webapp/WEB-INF/applicationContext-security.xml index 45837ed38..614ac2c3c 100644 --- a/services/JaxRsServiceProvider/src/main/webapp/WEB-INF/applicationContext-security.xml +++ b/services/JaxRsServiceProvider/src/main/webapp/WEB-INF/applicationContext-security.xml @@ -72,8 +72,8 @@ - - + + diff --git a/services/authentication/service/src/main/java/org/collectionspace/authentication/AuthN.java b/services/authentication/service/src/main/java/org/collectionspace/authentication/AuthN.java index d5e043f70..5cf351b12 100644 --- a/services/authentication/service/src/main/java/org/collectionspace/authentication/AuthN.java +++ b/services/authentication/service/src/main/java/org/collectionspace/authentication/AuthN.java @@ -49,8 +49,6 @@ */ package org.collectionspace.authentication; -import java.util.List; - import javax.sql.DataSource; import org.collectionspace.authentication.spi.AuthNContext; @@ -108,14 +106,6 @@ public class AuthN { return authnContext.getUserId(); } - /** - * getTenantIds returns a list of tenant ids the user is associated with - * @return - */ - public List getTenantIds() { - return authnContext.getTenantIds(); - } - public String getCurrentTenantId() { return authnContext.getCurrentTenantId(); } @@ -123,13 +113,4 @@ public class AuthN { public String getCurrentTenantName() { return authnContext.getCurrentTenantName(); } - - /** - * getTenants returns tenants associated with user - * @see CSpaceTenant - * @return - */ - public List getTenants() { - return authnContext.getTenants(); - } } diff --git a/services/authentication/service/src/main/java/org/collectionspace/authentication/CSpaceUser.java b/services/authentication/service/src/main/java/org/collectionspace/authentication/CSpaceUser.java index c7093402d..8cdd002c6 100644 --- a/services/authentication/service/src/main/java/org/collectionspace/authentication/CSpaceUser.java +++ b/services/authentication/service/src/main/java/org/collectionspace/authentication/CSpaceUser.java @@ -19,6 +19,7 @@ public class CSpaceUser extends User { private static final long serialVersionUID = 3326192720134327612L; private Set tenants; + private CSpaceTenant primaryTenant; /** * Creates a CSpaceUser with the given username, hashed password, associated @@ -41,6 +42,10 @@ public class CSpaceUser extends User { authorities); this.tenants = tenants; + + if (!tenants.isEmpty()) { + primaryTenant = tenants.iterator().next(); + } } /** @@ -51,4 +56,14 @@ public class CSpaceUser extends User { public Set getTenants() { return tenants; } + + /** + * Retrieves the primary tenant associated with the user. + * + * @return the tenants + */ + public CSpaceTenant getPrimaryTenant() { + return primaryTenant; + } + } diff --git a/services/authentication/service/src/main/java/org/collectionspace/authentication/spi/AuthNContext.java b/services/authentication/service/src/main/java/org/collectionspace/authentication/spi/AuthNContext.java index 600aabcdc..c8c911a11 100644 --- a/services/authentication/service/src/main/java/org/collectionspace/authentication/spi/AuthNContext.java +++ b/services/authentication/service/src/main/java/org/collectionspace/authentication/spi/AuthNContext.java @@ -24,8 +24,6 @@ */ package org.collectionspace.authentication.spi; -import java.util.List; - import org.collectionspace.authentication.CSpaceTenant; import org.collectionspace.authentication.CSpaceUser; @@ -76,17 +74,4 @@ public interface AuthNContext { */ public CSpaceTenant getCurrentTenant(); - /** - * Returns all tenants associated with the authenticated user. - * - * @return a list of tenants - */ - public List getTenants(); - - /** - * Returns the ids of all tenants associated with the authenticated user. - * - * @return a list of tenant ids - */ - public List getTenantIds(); } diff --git a/services/authentication/service/src/main/java/org/collectionspace/authentication/spring/SpringAuthNContext.java b/services/authentication/service/src/main/java/org/collectionspace/authentication/spring/SpringAuthNContext.java index 36b50674e..11af77509 100644 --- a/services/authentication/service/src/main/java/org/collectionspace/authentication/spring/SpringAuthNContext.java +++ b/services/authentication/service/src/main/java/org/collectionspace/authentication/spring/SpringAuthNContext.java @@ -23,9 +23,6 @@ */ package org.collectionspace.authentication.spring; -import java.util.ArrayList; -import java.util.List; - import org.collectionspace.authentication.CSpaceTenant; import org.collectionspace.authentication.CSpaceUser; import org.collectionspace.authentication.spi.AuthNContext; @@ -43,15 +40,13 @@ public class SpringAuthNContext implements AuthNContext { * @return the username */ public String getUserId() { - String result = ANONYMOUS_USER; - Authentication authToken = SecurityContextHolder.getContext().getAuthentication(); - if (authToken != null) { - result = authToken.getName(); + if (authToken == null) { + return ANONYMOUS_USER; } - return result; + return authToken.getName(); } /** @@ -101,37 +96,6 @@ public class SpringAuthNContext implements AuthNContext { * @return the tenant */ public CSpaceTenant getCurrentTenant() { - List tenants = getTenants(); - - if (tenants.size() < 1) { - throw new IllegalStateException("No tenant associated with user " + getUserId()); - } - - return tenants.get(0); - } - - /** - * Returns all tenants associated with the authenticated user. - * - * @return a list of tenants - */ - public List getTenants() { - return new ArrayList(getUser().getTenants()); - } - - /** - * Returns the ids of all tenants associated with the authenticated user. - * - * @return a list of tenant ids - */ - public List getTenantIds() { - List tenants = getTenants(); - List tenantIds = new ArrayList(tenants.size()); - - for (CSpaceTenant tenant : tenants) { - tenantIds.add(tenant.getId()); - } - - return tenantIds; + return getUser().getPrimaryTenant(); } } -- 2.47.3