Author: [email protected]
Date: Tue Oct 4 16:09:48 2011
New Revision: 1439
Log:
[AMDATUAUTH-97] Implemented multi-tenancy for the OAuth example gadget
Modified:
trunk/amdatu-auth/oauth-example/src/main/java/org/amdatu/auth/example/oauth/service/OAuthProtectedResource.java
Modified:
trunk/amdatu-auth/oauth-example/src/main/java/org/amdatu/auth/example/oauth/service/OAuthProtectedResource.java
==============================================================================
---
trunk/amdatu-auth/oauth-example/src/main/java/org/amdatu/auth/example/oauth/service/OAuthProtectedResource.java
(original)
+++
trunk/amdatu-auth/oauth-example/src/main/java/org/amdatu/auth/example/oauth/service/OAuthProtectedResource.java
Tue Oct 4 16:09:48 2011
@@ -34,6 +34,11 @@
import org.amdatu.auth.oauth.server.OAuthTokenProvider;
import org.amdatu.auth.tokenprovider.Token;
+import org.amdatu.core.tenant.Tenant;
+import org.apache.felix.dm.Component;
+import org.apache.felix.dm.DependencyManager;
+import org.apache.felix.dm.ServiceDependency;
+import org.osgi.framework.Constants;
/**
* Full path to this resource becomes: /rest/resource
@@ -42,9 +47,27 @@
*
*/
@Path("resource")
-public class OAuthProtectedResource implements DummyInterface {
+public class OAuthProtectedResource implements DummyInterface {
+ // Tenant unaware service dependencies
+ private volatile Tenant m_tenant;
+ private volatile DependencyManager m_dependencyManager;
+
+ // Tenant aware service dependencies
private volatile OAuthTokenProvider m_tokenProvider;
-
+
+ public void init(final Component component) {
+ component.add(getTenantServiceDependency(OAuthTokenProvider.class));
+ }
+
+ private ServiceDependency getTenantServiceDependency(Class<?> clazz) {
+ String tenantFilter = "(&(" + Tenant.TENANT_ID_SERVICEPROPERTY + "="
+ m_tenant.getId()
+ + ")(" + Constants.OBJECTCLASS + "=" + clazz.getName() + "))";
+ return m_dependencyManager.createServiceDependency()
+ .setService(clazz, tenantFilter)
+ .setRequired(true)
+ .setInstanceBound(true);
+ }
+
@GET
@Produces( { MediaType.TEXT_HTML })
public Response getResource(@Context HttpServletRequest request) {
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits