5 changed files with 24 additions and 87 deletions
@ -1,70 +0,0 @@ |
|||
/** |
|||
* Copyright © 2016-2020 The Thingsboard Authors |
|||
* |
|||
* Licensed under the Apache License, Version 2.0 (the "License"); |
|||
* you may not use this file except in compliance with the License. |
|||
* You may obtain a copy of the License at |
|||
* |
|||
* http://www.apache.org/licenses/LICENSE-2.0
|
|||
* |
|||
* Unless required by applicable law or agreed to in writing, software |
|||
* distributed under the License is distributed on an "AS IS" BASIS, |
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
* See the License for the specific language governing permissions and |
|||
* limitations under the License. |
|||
*/ |
|||
package org.thingsboard.server.utils; |
|||
|
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.apache.commons.lang.StringUtils; |
|||
|
|||
import javax.servlet.http.HttpServletRequest; |
|||
|
|||
@Slf4j |
|||
public class WebUtils { |
|||
private static final String X_FORWARDED_HOST_HEADER_KEY = "x-forwarded-host"; |
|||
private static final String X_FORWARDED_PORT_HEADER_KEY = "x-forwarded-port"; |
|||
private static final String X_FORWARDED_PROTO_HEADER_KEY = "x-forwarded-proto"; |
|||
|
|||
public static String getHost(HttpServletRequest request) { |
|||
String forwardedHost = request.getHeader(X_FORWARDED_HOST_HEADER_KEY); |
|||
log.trace("Forwarded host - {}.", forwardedHost); |
|||
if (!StringUtils.isEmpty(forwardedHost)) { |
|||
if (forwardedHost.contains(":")) { |
|||
return forwardedHost.substring(0, forwardedHost.indexOf(":")); |
|||
} else { |
|||
return forwardedHost; |
|||
} |
|||
} else { |
|||
return request.getServerName(); |
|||
} |
|||
} |
|||
|
|||
public static String getScheme(HttpServletRequest request) { |
|||
String forwardedProto = request.getHeader(X_FORWARDED_PROTO_HEADER_KEY); |
|||
log.trace("Forwarded proto - {}.", forwardedProto); |
|||
if (!StringUtils.isEmpty(forwardedProto)) { |
|||
return forwardedProto; |
|||
} else { |
|||
return request.getServerName(); |
|||
} |
|||
} |
|||
|
|||
public static String getPort(HttpServletRequest request) { |
|||
String forwardedPort = request.getHeader(X_FORWARDED_PORT_HEADER_KEY); |
|||
log.trace("Forwarded port - {}.", forwardedPort); |
|||
if (!StringUtils.isEmpty(forwardedPort)) { |
|||
return forwardedPort; |
|||
} |
|||
String forwardedHost = request.getHeader(X_FORWARDED_HOST_HEADER_KEY); |
|||
if (!StringUtils.isEmpty(forwardedHost)) { |
|||
if (forwardedHost.contains(":")) { |
|||
return forwardedHost.substring(forwardedHost.indexOf(":")); |
|||
} else { |
|||
return "HTTP".equals(getScheme(request).toUpperCase()) ? |
|||
"80" : "443"; |
|||
} |
|||
} |
|||
return Integer.toString(request.getServerPort()); |
|||
} |
|||
} |
|||
Loading…
Reference in new issue