|
@@ -5,7 +5,6 @@ import com.global.base.log.LogPrintMgr;
|
|
|
import com.shkpr.service.proxycenter.commtools.CommTool;
|
|
|
import com.shkpr.service.proxycenter.commtools.HttpTool;
|
|
|
import com.shkpr.service.proxycenter.constants.ApiURI;
|
|
|
-import com.shkpr.service.proxycenter.constants.ProxyPassDefine;
|
|
|
import com.shkpr.service.proxycenter.controllerfilter.TokenAuthenticationService;
|
|
|
import com.shkpr.service.proxycenter.dto.ResponseCode;
|
|
|
import org.apache.http.client.HttpClient;
|
|
@@ -29,12 +28,12 @@ import java.security.cert.CertificateException;
|
|
|
import java.security.cert.X509Certificate;
|
|
|
|
|
|
public abstract class AbstractProxyServlet extends ProxyServlet {
|
|
|
- private String mStrClassName = "AbstractProxyServlet";
|
|
|
- private String mStrBizType = "";
|
|
|
private String proxyAddress = "https://127.0.0.1:9000/";
|
|
|
+ private String mStrClassName = "AbstractProxyServlet";
|
|
|
private String proxyId = "";
|
|
|
private String proxyTK = "";
|
|
|
private String proxyUri = "";
|
|
|
+ protected String proxyBiz = "";
|
|
|
|
|
|
public AbstractProxyServlet(String proxyUri, String proxyId, String proxyAddress, String proxyTK) {
|
|
|
this.proxyUri = proxyUri;
|
|
@@ -46,6 +45,14 @@ public abstract class AbstractProxyServlet extends ProxyServlet {
|
|
|
public AbstractProxyServlet() {
|
|
|
}
|
|
|
|
|
|
+ protected String filterRealAddress(){
|
|
|
+ return proxyAddress;
|
|
|
+ }
|
|
|
+
|
|
|
+ protected String filterRealUri(){
|
|
|
+ return proxyUri;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
protected HttpClient createHttpClient() {
|
|
|
HttpClientBuilder clientBuilder = HttpClientBuilder.create().
|
|
@@ -84,6 +91,8 @@ public abstract class AbstractProxyServlet extends ProxyServlet {
|
|
|
final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
|
|
|
final String strIpAddress = HttpTool.getIpAddress(servletRequest);
|
|
|
final String destUri = servletRequest.getRequestURI();
|
|
|
+
|
|
|
+ proxyBiz = servletRequest.getHeader(ApiURI.HEADER_PROXY_BIZ);
|
|
|
ResponseCode headerCheck = checkHeader(servletRequest, servletResponse);
|
|
|
if (headerCheck != ResponseCode.RESULT_NORMAL) {
|
|
|
LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_WARN, proxyId, mStrClassName, "Outer"
|
|
@@ -97,7 +106,6 @@ public abstract class AbstractProxyServlet extends ProxyServlet {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
servletRequest.setAttribute(ATTR_TARGET_URI, null);
|
|
|
|
|
|
if (!destUri.startsWith(proxyUri)){
|
|
@@ -113,23 +121,15 @@ public abstract class AbstractProxyServlet extends ProxyServlet {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- switch (proxyId){
|
|
|
- case ProxyPassDefine.PROXY_GEOSERVER:
|
|
|
- case ProxyPassDefine.PROXY_ANALY:{
|
|
|
- //nothing
|
|
|
- }
|
|
|
- break;
|
|
|
- default: {
|
|
|
- //若不重置super.targetUri;则super.targetUri实际地址为【/data-gw/3th/dma-proxy/*】中*号匹配的部分
|
|
|
- //若重置super.targetUri=XXX; 则super.targetUri实际地址为XXX +【/data-gw/3th/dma-proxy/*】中*号匹配的部分
|
|
|
- super.targetUri = proxyUri;
|
|
|
- }
|
|
|
- break;
|
|
|
+ if (!StringUtils.isEmpty(filterRealUri())){
|
|
|
+ //若不重置super.targetUri;则super.targetUri实际地址为【/data-gw/3th/dma-proxy/*】中*号匹配的部分
|
|
|
+ //若重置super.targetUri=XXX; 则super.targetUri实际地址为XXX +【/data-gw/3th/dma-proxy/*】中*号匹配的部分
|
|
|
+ super.targetUri = filterRealUri();
|
|
|
}
|
|
|
|
|
|
URI uri = null;
|
|
|
try {
|
|
|
- uri = new URI(proxyAddress);
|
|
|
+ uri = new URI(filterRealAddress());
|
|
|
} catch (URISyntaxException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|