Author: ivol37 at gmail.com
Date: Thu Feb  3 11:51:02 2011
New Revision: 756

Log:
[AMDATU-84] Fixed failing integration tests for oAuth. The OAuthTokenProvider 
used was not using the same tenant as the TokenProvider it used.

Modified:
   branches/amdatu-dispatcher/amdatu-authentication/oauth-server/pom.xml
   
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/osgi/Activator.java
   
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthAccessTokenServletImpl.java
   
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthAuthorizeTokenServletImpl.java
   
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthRequestTokenServletImpl.java
   
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthTokenProviderImpl.java

Modified: branches/amdatu-dispatcher/amdatu-authentication/oauth-server/pom.xml
==============================================================================
--- branches/amdatu-dispatcher/amdatu-authentication/oauth-server/pom.xml       
(original)
+++ branches/amdatu-dispatcher/amdatu-authentication/oauth-server/pom.xml       
Thu Feb  3 11:51:02 2011
@@ -12,7 +12,7 @@
   <packaging>bundle</packaging>
   <name>Amdatu Authentication - oAuth server</name>
   <description>This bundle includes an API for oAuth service 
providers</description>
-  
+
   <dependencies>
     <dependency>
       <groupId>org.amdatu.web</groupId>
@@ -31,7 +31,7 @@
     <dependency>
       <groupId>org.amdatu.authentication.oauth</groupId>
       <artifactId>api</artifactId>
-      <version>${platform.version}</version>   
+      <version>${platform.version}</version>
       <scope>provided</scope>
       <type>bundle</type>
     </dependency>
@@ -78,9 +78,16 @@
       <version>${platform.version}</version>
       <scope>provided</scope>
       <type>bundle</type>
-    </dependency>    
+    </dependency>
+    <dependency>
+      <groupId>org.amdatu.core</groupId>
+      <artifactId>tenant</artifactId>
+      <version>${platform.version}</version>
+      <scope>provided</scope>
+      <type>bundle</type>
+    </dependency>
   </dependencies>
-  
+
   <build>
     <plugins>
       <plugin>
@@ -101,5 +108,5 @@
         </configuration>
       </plugin>
     </plugins>
-  </build> 
+  </build>
 </project>

Modified: 
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/osgi/Activator.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/osgi/Activator.java
      (original)
+++ 
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/osgi/Activator.java
      Thu Feb  3 11:51:02 2011
@@ -61,12 +61,11 @@
     public void initWithDependencies(BundleContext context, DependencyManager 
manager) throws Exception {
         // Create and register the OAuth token provider service component.
         manager.add(
-            createComponent()
+            createAdapterService(TokenProvider.class, null)
             .setInterface(OAuthTokenProvider.class.getName(), null)
             .setImplementation(OAuthTokenProviderImpl.class)
             
.add(createServiceDependency().setService(LogService.class).setRequired(true))
             
.add(createServiceDependency().setService(OAuthServiceProvider.class).setRequired(true))
-            
.add(createServiceDependency().setService(TokenProvider.class).setRequired(true))
             
.add(createServiceDependency().setService(OAuthServiceConsumerRegistry.class).setRequired(true)));
 
         // Create and register the resource provider
@@ -104,10 +103,9 @@
         Dictionary<String, String> servletProperties = new Hashtable<String, 
String>();
         servletProperties.put("alias", alias);
         servletProperties.put("contextId", alias);
-        return createAdapterService(TokenProvider.class, null)
+        return createAdapterService(OAuthTokenProvider.class, null)
             .setInterface(new String[]{servletInterface.getName(), 
Servlet.class.getName()}, servletProperties)
             .setImplementation(servletClass)
-            
.add(createServiceDependency().setService(OAuthTokenProvider.class).setRequired(true))
             
.add(createServiceDependency().setService(OAuthServiceProvider.class).setRequired(true))
             
.add(createServiceDependency().setService(LogService.class).setRequired(true));
     }

Modified: 
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthAccessTokenServletImpl.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthAccessTokenServletImpl.java
 (original)
+++ 
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthAccessTokenServletImpl.java
 Thu Feb  3 11:51:02 2011
@@ -32,6 +32,8 @@
 
 import org.amdatu.authentication.oauth.server.OAuthAccessTokenServlet;
 import org.amdatu.authentication.oauth.server.OAuthTokenProvider;
+import org.amdatu.core.tenant.Tenant;
+import org.apache.felix.dm.Component;
 import org.osgi.service.log.LogService;
 
 public class OAuthAccessTokenServletImpl extends HttpServlet implements 
OAuthAccessTokenServlet {
@@ -42,6 +44,16 @@
     private volatile LogService m_logService;
     private volatile OAuthTokenProvider m_tokenProvider;
 
+       private String m_tenantId;
+
+    public void init(Component component) {
+       m_tenantId = 
component.getServiceProperties().get(Tenant.TENANT_ID_SERVICEPROPERTY).toString();
+    }
+    
+       public void start() {
+               m_logService.log(LogService.LOG_DEBUG, "OAuth Access Token 
servlet started for tenant '" + m_tenantId + "'");
+       }
+       
     public void doGet(HttpServletRequest request, HttpServletResponse response)
         throws IOException, ServletException {
         processRequest(request, response);

Modified: 
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthAuthorizeTokenServletImpl.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthAuthorizeTokenServletImpl.java
      (original)
+++ 
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthAuthorizeTokenServletImpl.java
      Thu Feb  3 11:51:02 2011
@@ -20,9 +20,7 @@
 import java.io.PrintWriter;
 import java.util.Map;
 
-import javax.servlet.ServletConfig;
 import javax.servlet.ServletException;
-import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
@@ -40,6 +38,10 @@
 import org.amdatu.authentication.tokenprovider.InvalidTokenException;
 import org.amdatu.authentication.tokenprovider.TokenProvider;
 import org.amdatu.authentication.tokenprovider.TokenProviderException;
+import org.amdatu.core.tenant.Tenant;
+import org.apache.felix.dm.Component;
+import org.apache.felix.dm.DependencyManager;
+import org.osgi.framework.Constants;
 import org.osgi.service.log.LogService;
 
 public class OAuthAuthorizeTokenServletImpl extends HttpServlet implements 
OAuthAuthorizeTokenServlet {
@@ -51,11 +53,24 @@
     private volatile TokenProvider m_tokenProvider;
     private volatile OAuthTokenProvider m_oAuthTokenProvider;
     private volatile OAuthServiceProvider m_serviceProvider;
-    
-    public void init(ServletConfig config) throws ServletException {
-        super.init(config);
+       private volatile DependencyManager m_dependencyManager;
+       
+       private String m_tenantId;
+
+    public void init(Component component) {
+       m_tenantId = 
component.getServiceProperties().get(Tenant.TENANT_ID_SERVICEPROPERTY).toString();
+       
+       // Create a service dependency on the token provider for 'our' tenant
+               String tenantFilter = "(&(" + Tenant.TENANT_ID_SERVICEPROPERTY 
+ "=" + m_tenantId + ")(" + Constants.OBJECTCLASS
+               + "=" + TokenProvider.class.getName() + "))";
+               component.add(m_dependencyManager.createServiceDependency()
+                               .setService(TokenProvider.class, 
tenantFilter).setRequired(true).setInstanceBound(true));
     }
-
+    
+       public void start() {
+               m_logService.log(LogService.LOG_DEBUG, "OAuth Authorize Token 
servlet started for tenant '" + m_tenantId + "'");
+       }
+       
     public void doGet(HttpServletRequest request, HttpServletResponse 
response) throws IOException, ServletException {
        try {
             OAuthMessage requestMessage = OAuthServlet.getMessage(request, 
null);

Modified: 
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthRequestTokenServletImpl.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthRequestTokenServletImpl.java
        (original)
+++ 
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthRequestTokenServletImpl.java
        Thu Feb  3 11:51:02 2011
@@ -31,6 +31,11 @@
 
 import org.amdatu.authentication.oauth.server.OAuthRequestTokenServlet;
 import org.amdatu.authentication.oauth.server.OAuthTokenProvider;
+import org.amdatu.authentication.tokenprovider.TokenProvider;
+import org.amdatu.core.tenant.Tenant;
+import org.apache.felix.dm.Component;
+import org.apache.felix.dm.DependencyManager;
+import org.osgi.framework.Constants;
 import org.osgi.service.log.LogService;
 
 /**
@@ -48,8 +53,14 @@
        private volatile LogService m_logService;
        private volatile OAuthTokenProvider m_tokenProvider;
 
+       private String m_tenantId;
+
+    public void init(Component component) {
+       m_tenantId = 
component.getServiceProperties().get(Tenant.TENANT_ID_SERVICEPROPERTY).toString();
+    }
+    
        public void start() {
-               m_logService.log(LogService.LOG_DEBUG, "OAuth Request Token 
servlet started.");
+               m_logService.log(LogService.LOG_DEBUG, "OAuth Request Token 
servlet started for tenant '" + m_tenantId + "'");
        }
 
        public void doGet(HttpServletRequest request, HttpServletResponse 
response)

Modified: 
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthTokenProviderImpl.java
==============================================================================
--- 
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthTokenProviderImpl.java
      (original)
+++ 
branches/amdatu-dispatcher/amdatu-authentication/oauth-server/src/main/java/org/amdatu/authentication/oauth/server/service/OAuthTokenProviderImpl.java
      Thu Feb  3 11:51:02 2011
@@ -42,6 +42,8 @@
 import org.amdatu.authentication.oauth.server.OAuthTokenProvider;
 import org.amdatu.authentication.tokenprovider.TokenProvider;
 import org.amdatu.authentication.tokenprovider.TokenProviderException;
+import org.amdatu.core.tenant.Tenant;
+import org.apache.felix.dm.Component;
 import org.osgi.service.log.LogService;
 
 public class OAuthTokenProviderImpl implements OAuthTokenProvider {
@@ -57,8 +59,15 @@
     // Distributed oAuth tokens
     private Collection<OAuthAccessor> m_tokens = new HashSet<OAuthAccessor>();
 
+    // Other private members
+    private String m_tenantId;
+    
+    public void init(Component component) {
+       m_tenantId = 
component.getServiceProperties().get(Tenant.TENANT_ID_SERVICEPROPERTY).toString();
+    }
+    
     public void start() {
-        m_logService.log(LogService.LOG_DEBUG, "OAuthTokenProvider service 
started");
+        m_logService.log(LogService.LOG_DEBUG, "OAuthTokenProvider service 
started for tenant '" + m_tenantId + "'");
     }
 
     public synchronized OAuthConsumer getConsumer(OAuthMessage requestMessage) 
throws IOException,

Reply via email to