You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 10:16:48 UTC

[sling-org-apache-sling-tenant] 14/18: Implementation is mostly resource based

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.tenant-1.0.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-tenant.git

commit ba926573fb7b86c5ba1a7b3b550f2ba16845956a
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Apr 22 11:37:20 2013 +0000

    Implementation is mostly resource based
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/extensions/tenant@1470460 13f79535-47bb-0310-9956-ffa450edef68
---
 .../tenant/internal/TenantAdapterFactory.java      | 34 ++++++++++++----------
 .../sling/tenant/internal/TenantProviderImpl.java  | 14 ++++-----
 2 files changed, 25 insertions(+), 23 deletions(-)

diff --git a/src/main/java/org/apache/sling/tenant/internal/TenantAdapterFactory.java b/src/main/java/org/apache/sling/tenant/internal/TenantAdapterFactory.java
index 691f956..3494615 100644
--- a/src/main/java/org/apache/sling/tenant/internal/TenantAdapterFactory.java
+++ b/src/main/java/org/apache/sling/tenant/internal/TenantAdapterFactory.java
@@ -40,7 +40,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * JCR based tenant adapter factory, that adapts <code>ResourceResolver</code>
+ * Resource based tenant adapter factory, that adapts <code>ResourceResolver</code>
  * and <code>Resource</code> to <code>Tenant</code>.
  *
  * It tries to resolve the tenant based on logged in user by looking at the user
@@ -72,7 +72,7 @@ class TenantAdapterFactory implements AdapterFactory {
         }
 
 	    Dictionary<String, Object> props = new Hashtable<String, Object>();
-	    props.put(Constants.SERVICE_DESCRIPTION, "Apache Sling JCR Tenant Adapter");
+	    props.put(Constants.SERVICE_DESCRIPTION, "Apache Sling Tenant Adapter");
 	    props.put(AdapterFactory.ADAPTER_CLASSES, new String[]{ TENANT_CLASS.getName() });
 	    props.put(AdapterFactory.ADAPTABLE_CLASSES, new String[] { RESOURCERESOLVER_CLASS
 	            .getName(), RESOURCE_CLASS.getName() });
@@ -113,20 +113,22 @@ class TenantAdapterFactory implements AdapterFactory {
 
 	private <AdapterType> AdapterType getAdapter(Session session,
 			Class<AdapterType> type) {
-		String userID = session.getUserID();
-
-		JackrabbitSession jrSession = (JackrabbitSession) session;
-		try {
-			Authorizable authorizable = jrSession.getUserManager()
-					.getAuthorizable(userID);
-			String userHome = authorizable.getPath();
-
-			// tries to get tenant information from user home
-			// i.e. /home/users/tenant1/a/admin
-			return getAdapter(userHome, type);
-		} catch (Exception e) {
-			log.error("can not get user from session", e);
-		}
+	    if ( session != null ) {
+    		String userID = session.getUserID();
+
+    		JackrabbitSession jrSession = (JackrabbitSession) session;
+    		try {
+    			Authorizable authorizable = jrSession.getUserManager()
+    					.getAuthorizable(userID);
+    			String userHome = authorizable.getPath();
+
+    			// tries to get tenant information from user home
+    			// i.e. /home/users/tenant1/a/admin
+    			return getAdapter(userHome, type);
+    		} catch (Exception e) {
+    			log.error("can not get user from session", e);
+    		}
+	    }
 		log.debug("Unable to adapt to resource of type {}", type.getName());
 		return null;
 	}
diff --git a/src/main/java/org/apache/sling/tenant/internal/TenantProviderImpl.java b/src/main/java/org/apache/sling/tenant/internal/TenantProviderImpl.java
index 669e054..e52c884 100644
--- a/src/main/java/org/apache/sling/tenant/internal/TenantProviderImpl.java
+++ b/src/main/java/org/apache/sling/tenant/internal/TenantProviderImpl.java
@@ -62,16 +62,16 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * JCR Tenant Provider implementation.
+ * Resource based Tenant Provider implementation.
  */
 @Component(
         metatype = true,
-        label = "Apache Sling JCR Tenant Provider",
+        label = "Apache Sling Tenant Provider",
         description = "Service responsible for providing Tenants",
         immediate = true)
 @Service
 @Properties(value = {
-    @Property(name = Constants.SERVICE_DESCRIPTION, value = "Apache Sling JCR Tenant Provider")
+    @Property(name = Constants.SERVICE_DESCRIPTION, value = "Apache Sling Tenant Provider")
 })
 @Reference(
         name = "tenantSetup",
@@ -86,9 +86,9 @@ public class TenantProviderImpl implements TenantProvider, TenantManager {
     /**
      * Root path for tenant
      */
-    private static final String JCR_TENANT_ROOT = "/etc/tenants";
+    private static final String RESOURCE_TENANT_ROOT = "/etc/tenants";
 
-    @Property(value = JCR_TENANT_ROOT, label = "Tenants Root Path", description = "Defines tenants root path")
+    @Property(value = RESOURCE_TENANT_ROOT, label = "Tenants Root Path", description = "Defines tenants root path")
     private static final String TENANT_ROOT = "tenant.root";
 
     private static final String[] DEFAULT_PATH_MATCHER = {};
@@ -103,7 +103,7 @@ public class TenantProviderImpl implements TenantProvider, TenantManager {
             description = "Defines tenants path matcher i.e. /content/sample/([^/]+)/*, used while resolving path to tenant")
     private static final String TENANT_PATH_MATCHER = "tenant.path.matcher";
 
-    private String tenantRootPath = JCR_TENANT_ROOT;
+    private String tenantRootPath = RESOURCE_TENANT_ROOT;
 
     @Reference
     private ResourceResolverFactory factory;
@@ -114,7 +114,7 @@ public class TenantProviderImpl implements TenantProvider, TenantManager {
 
     @Activate
     private void activate(final BundleContext bundleContext, final Map<String, Object> properties) {
-        this.tenantRootPath = PropertiesUtil.toString(properties.get(TENANT_ROOT), JCR_TENANT_ROOT);
+        this.tenantRootPath = PropertiesUtil.toString(properties.get(TENANT_ROOT), RESOURCE_TENANT_ROOT);
         this.adapterFactory = new TenantAdapterFactory(bundleContext, this, PropertiesUtil.toStringArray(properties.get(TENANT_PATH_MATCHER), DEFAULT_PATH_MATCHER));
         this.plugin = new WebConsolePlugin(bundleContext, this);
     }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.