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,