diff --git a/source/java/org/alfresco/opencmis/CMISHttpServletRequest.java b/source/java/org/alfresco/opencmis/CMISHttpServletRequest.java index a60ec2bb7b..48b5e29c19 100644 --- a/source/java/org/alfresco/opencmis/CMISHttpServletRequest.java +++ b/source/java/org/alfresco/opencmis/CMISHttpServletRequest.java @@ -36,7 +36,6 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.alfresco.opencmis.CMISDispatcherRegistry.Binding; -import org.alfresco.repo.tenant.TenantService; import org.alfresco.repo.tenant.TenantUtil; import org.alfresco.repo.web.scripts.TenantWebScriptServletRequest; import org.alfresco.service.descriptor.Descriptor; @@ -77,10 +76,6 @@ public class CMISHttpServletRequest implements HttpServletRequest { TenantWebScriptServletRequest servletReq = (TenantWebScriptServletRequest)baseReq; this.networkId = servletReq.getTenant(); - if(TenantUtil.DEFAULT_TENANT.equals(this.networkId) || TenantUtil.SYSTEM_TENANT.equals(this.networkId)) - { - this.networkId = TenantService.DEFAULT_DOMAIN; - } } Match match = req.getServiceMatch(); @@ -438,7 +433,7 @@ public class CMISHttpServletRequest implements HttpServletRequest StringBuilder queryString = new StringBuilder(); String reqQueryString = httpReq.getQueryString(); - if(networkId != null) + if(networkId != null && networkId.length() > 0) { if (reqQueryString == null) { @@ -455,7 +450,7 @@ public class CMISHttpServletRequest implements HttpServletRequest } else { - return null; + return reqQueryString; } } diff --git a/source/test-java/org/alfresco/rest/api/tests/TestCMIS.java b/source/test-java/org/alfresco/rest/api/tests/TestCMIS.java index c864b684ac..44ae686c65 100644 --- a/source/test-java/org/alfresco/rest/api/tests/TestCMIS.java +++ b/source/test-java/org/alfresco/rest/api/tests/TestCMIS.java @@ -100,10 +100,15 @@ import org.apache.chemistry.opencmis.client.api.Property; import org.apache.chemistry.opencmis.client.api.Relationship; import org.apache.chemistry.opencmis.client.api.Repository; import org.apache.chemistry.opencmis.client.api.SecondaryType; +import org.apache.chemistry.opencmis.client.api.Session; +import org.apache.chemistry.opencmis.client.api.SessionFactory; import org.apache.chemistry.opencmis.client.api.Tree; import org.apache.chemistry.opencmis.client.runtime.OperationContextImpl; +import org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl; import org.apache.chemistry.opencmis.commons.PropertyIds; +import org.apache.chemistry.opencmis.commons.SessionParameter; import org.apache.chemistry.opencmis.commons.data.ContentStream; +import org.apache.chemistry.opencmis.commons.data.RepositoryInfo; import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships; import org.apache.chemistry.opencmis.commons.enums.VersioningState; import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException; @@ -1920,4 +1925,40 @@ public class TestCMIS extends EnterpriseTestApi assertNotNull(("'" + PropertyIds.IS_PRIVATE_WORKING_COPY + "' property value must not be null!"), isPwcValueTrue); assertTrue(("'" + PropertyIds.IS_PRIVATE_WORKING_COPY + "' property value must be equal to 'true'!"), isPwcValueTrue); } + + @Test + public void testCanConnectCMISUsingDefaultTenant() throws Exception + { + testCanConnectCMISUsingDefaultTenantImpl(Binding.atom, CMIS_VERSION_11); + testCanConnectCMISUsingDefaultTenantImpl(Binding.atom, CMIS_VERSION_10); + testCanConnectCMISUsingDefaultTenantImpl(Binding.browser, CMIS_VERSION_11); + } + + private void testCanConnectCMISUsingDefaultTenantImpl(Binding binding, String cmisVersion) + { + String url = httpClient.getPublicApiCmisUrl(TenantUtil.DEFAULT_TENANT, binding, cmisVersion, null); + + Map parameters = new HashMap(); + + // user credentials + parameters.put(SessionParameter.USER, "admin"); + parameters.put(SessionParameter.PASSWORD, "admin"); + + parameters.put(SessionParameter.ATOMPUB_URL, url); + parameters.put(SessionParameter.BROWSER_URL, url); + parameters.put(SessionParameter.BINDING_TYPE, binding.getOpenCmisBinding().value()); + + SessionFactory factory = SessionFactoryImpl.newInstance(); + // perform request : http://host:port/alfresco/api/-default-/public/cmis/versions/${cmisVersion}/${binding} + List repositories = factory.getRepositories(parameters); + + assertTrue(repositories.size() > 0); + + parameters.put(SessionParameter.REPOSITORY_ID, TenantUtil.DEFAULT_TENANT); + Session session = factory.createSession(parameters); + // perform request : http://host:port/alfresco/api/-default-/public/cmis/versions/${cmisVersion}/${binding}/type?id=cmis:document + ObjectType objectType = session.getTypeDefinition("cmis:document"); + + assertNotNull(objectType); + } }