diff --git a/source/java/org/alfresco/repo/webdav/WebDAVHelper.java b/source/java/org/alfresco/repo/webdav/WebDAVHelper.java index f9d9df33d3..8b7cd29008 100644 --- a/source/java/org/alfresco/repo/webdav/WebDAVHelper.java +++ b/source/java/org/alfresco/repo/webdav/WebDAVHelper.java @@ -24,6 +24,8 @@ import java.util.Collections; import java.util.List; import java.util.StringTokenizer; +import javax.servlet.http.HttpServletRequest; + import org.alfresco.model.ContentModel; import org.alfresco.repo.tenant.TenantService; import org.alfresco.service.ServiceRegistry; @@ -41,6 +43,8 @@ import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter; import org.alfresco.service.cmr.search.SearchService; import org.alfresco.service.cmr.security.AuthenticationService; import org.alfresco.service.cmr.security.PermissionService; +import org.alfresco.service.cmr.site.SiteInfo; +import org.alfresco.service.cmr.site.SiteService; import org.alfresco.service.namespace.NamespaceService; import org.alfresco.util.EqualsHelper; import org.apache.commons.logging.Log; @@ -63,6 +67,7 @@ public class WebDAVHelper // Path seperator public static final String PathSeperator = "/"; public static final char PathSeperatorChar = '/'; + private static final String DEFAULT_SITE_ID = null; // Logging private static Log logger = LogFactory.getLog("org.alfresco.webdav.protocol"); @@ -645,4 +650,32 @@ public class WebDAVHelper return sb.toString(); } } + + public String determineSiteId(WebDAVMethod method) + { + SiteService siteService = getServiceRegistry().getSiteService(); + String siteId; + try + { + FileInfo fileInfo = getNodeForPath(method.getRootNodeRef(), method.getPath(), method.getServletPath()); + SiteInfo siteInfo = siteService.getSite(fileInfo.getNodeRef()); + siteId = siteInfo.getShortName(); + } + catch (FileNotFoundException error) + { + siteId = DEFAULT_SITE_ID; + } + return siteId; + } + + public String determineTenantDomain(WebDAVMethod method) + { + TenantService tenantService = getTenantService(); + String tenantDomain = tenantService.getCurrentUserDomain(); + if (tenantDomain == null) + { + return TenantService.DEFAULT_DOMAIN; + } + return tenantDomain; + } } diff --git a/source/java/org/alfresco/repo/webdav/WebDAVMethod.java b/source/java/org/alfresco/repo/webdav/WebDAVMethod.java index 9e17eb8513..22737b8fec 100644 --- a/source/java/org/alfresco/repo/webdav/WebDAVMethod.java +++ b/source/java/org/alfresco/repo/webdav/WebDAVMethod.java @@ -1520,27 +1520,7 @@ public abstract class WebDAVMethod { if (siteId == null) { - siteId = determineSiteId(); - } - return siteId; - } - - protected String determineSiteId() - { - SiteService siteService = m_davHelper.getServiceRegistry().getSiteService(); - String siteId; - try - { - FileInfo fileInfo = m_davHelper.getNodeForPath( - getRootNodeRef(), - getPath(), - m_request.getServletPath()); - SiteInfo siteInfo = siteService.getSite(fileInfo.getNodeRef()); - siteId = siteInfo.getShortName(); - } - catch (FileNotFoundException error) - { - siteId = DEFAULT_SITE_ID; + siteId = getDAVHelper().determineSiteId(this); } return siteId; } @@ -1555,18 +1535,7 @@ public abstract class WebDAVMethod { if (tenantDomain == null) { - tenantDomain = determineTenantDomain(); - } - return tenantDomain; - } - - protected String determineTenantDomain() - { - TenantService tenantService = m_davHelper.getTenantService(); - String tenantDomain = tenantService.getCurrentUserDomain(); - if (tenantDomain == null) - { - return TenantService.DEFAULT_DOMAIN; + tenantDomain = getDAVHelper().determineTenantDomain(this); } return tenantDomain; }