mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged 5.2.N (5.2.1) to HEAD (5.2)
125783 rmunteanu: Merged 5.1.N (5.1.2) to 5.2.N (5.2.1) 125605 rmunteanu: Merged 5.1.1 (5.1.1) to 5.1.N (5.1.2) 125498 slanglois: MNT-16155 Update source headers - remove svn:eol-style property on Java and JSP source files git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@127809 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1,76 +1,76 @@
|
||||
package org.alfresco.opencmis;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
* Generates an OpenCMIS base url based on the request, repository id and binding. The url scheme, host and port
|
||||
* are overridden by any proxy http header parameters, if present.
|
||||
*
|
||||
* @author steveglover
|
||||
*
|
||||
*/
|
||||
public class ProxyBaseUrlGenerator extends AbstractBaseUrlGenerator
|
||||
{
|
||||
public static final String FORWARDED_HOST_HEADER = "X-Forwarded-Host";
|
||||
public static final String FORWARDED_PROTO_HEADER = "X-Forwarded-Proto";
|
||||
public static final String HTTPS_SCHEME = "https";
|
||||
public static final String HTTP_SCHEME = "http";
|
||||
|
||||
@Override
|
||||
protected String getServerPath(HttpServletRequest request)
|
||||
{
|
||||
String scheme = request.getHeader(FORWARDED_PROTO_HEADER);
|
||||
String serverName;
|
||||
int serverPort;
|
||||
|
||||
if (!HTTP_SCHEME.equalsIgnoreCase(scheme) && !HTTPS_SCHEME.equalsIgnoreCase(scheme))
|
||||
{
|
||||
scheme = request.getScheme();
|
||||
}
|
||||
|
||||
serverName = request.getServerName();
|
||||
serverPort = request.getServerPort();
|
||||
|
||||
String host = request.getHeader(FORWARDED_HOST_HEADER);
|
||||
if ((host != null) && (host.length() > 0))
|
||||
{
|
||||
int index = host.indexOf(':');
|
||||
if (index < 0)
|
||||
{
|
||||
serverName = host;
|
||||
serverPort = getDefaultPort(scheme);
|
||||
}
|
||||
else
|
||||
{
|
||||
serverName = host.substring(0, index);
|
||||
try
|
||||
{
|
||||
serverPort = Integer.parseInt(host.substring(index + 1));
|
||||
}
|
||||
catch (NumberFormatException e)
|
||||
{
|
||||
serverPort = getDefaultPort(scheme);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(scheme);
|
||||
sb.append("://");
|
||||
sb.append(serverName);
|
||||
sb.append(":");
|
||||
sb.append(serverPort);
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
private int getDefaultPort(String scheme)
|
||||
{
|
||||
if (HTTPS_SCHEME.equalsIgnoreCase(scheme))
|
||||
{
|
||||
return 443;
|
||||
}
|
||||
|
||||
return 80;
|
||||
}
|
||||
|
||||
}
|
||||
package org.alfresco.opencmis;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
* Generates an OpenCMIS base url based on the request, repository id and binding. The url scheme, host and port
|
||||
* are overridden by any proxy http header parameters, if present.
|
||||
*
|
||||
* @author steveglover
|
||||
*
|
||||
*/
|
||||
public class ProxyBaseUrlGenerator extends AbstractBaseUrlGenerator
|
||||
{
|
||||
public static final String FORWARDED_HOST_HEADER = "X-Forwarded-Host";
|
||||
public static final String FORWARDED_PROTO_HEADER = "X-Forwarded-Proto";
|
||||
public static final String HTTPS_SCHEME = "https";
|
||||
public static final String HTTP_SCHEME = "http";
|
||||
|
||||
@Override
|
||||
protected String getServerPath(HttpServletRequest request)
|
||||
{
|
||||
String scheme = request.getHeader(FORWARDED_PROTO_HEADER);
|
||||
String serverName;
|
||||
int serverPort;
|
||||
|
||||
if (!HTTP_SCHEME.equalsIgnoreCase(scheme) && !HTTPS_SCHEME.equalsIgnoreCase(scheme))
|
||||
{
|
||||
scheme = request.getScheme();
|
||||
}
|
||||
|
||||
serverName = request.getServerName();
|
||||
serverPort = request.getServerPort();
|
||||
|
||||
String host = request.getHeader(FORWARDED_HOST_HEADER);
|
||||
if ((host != null) && (host.length() > 0))
|
||||
{
|
||||
int index = host.indexOf(':');
|
||||
if (index < 0)
|
||||
{
|
||||
serverName = host;
|
||||
serverPort = getDefaultPort(scheme);
|
||||
}
|
||||
else
|
||||
{
|
||||
serverName = host.substring(0, index);
|
||||
try
|
||||
{
|
||||
serverPort = Integer.parseInt(host.substring(index + 1));
|
||||
}
|
||||
catch (NumberFormatException e)
|
||||
{
|
||||
serverPort = getDefaultPort(scheme);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(scheme);
|
||||
sb.append("://");
|
||||
sb.append(serverName);
|
||||
sb.append(":");
|
||||
sb.append(serverPort);
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
private int getDefaultPort(String scheme)
|
||||
{
|
||||
if (HTTPS_SCHEME.equalsIgnoreCase(scheme))
|
||||
{
|
||||
return 443;
|
||||
}
|
||||
|
||||
return 80;
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user