提交 9f6ebd0f 编写于 作者: O o2null

Merge branch 'fix/proxydecode' into 'wrdp'

修正java8decode不能使用对象作为参数

See merge request o2oa/o2oa!4301
package com.x.general.assemble.control.servlet.proxy;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
......@@ -9,26 +10,37 @@ import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.jetty.proxy.ProxyServlet;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
@WebServlet(urlPatterns = "/servlet/proxy/*", asyncSupported = true)
public class ActionDo extends ProxyServlet {
private static final long serialVersionUID = -2607395779516788482L;
private static Logger logger = LoggerFactory.getLogger(ActionDo.class);
@Override
protected String rewriteTarget(HttpServletRequest clientRequest) {
String url = clientRequest.getParameter("url");
if (StringUtils.isEmpty(url)) {
url = URLDecoder.decode(clientRequest.getRequestURL().toString(), StandardCharsets.UTF_8);
url = StringUtils.substringAfter(url, "/servlet/proxy/");
String query = clientRequest.getQueryString();
if (StringUtils.isEmpty(query)) {
url = url + "?" + query;
try {
if (StringUtils.isEmpty(url)) {
// java8不支持tandardCharsets.UTF_8对象作为参数的decode
url = URLDecoder.decode(clientRequest.getRequestURL().toString(), StandardCharsets.UTF_8.name());
url = StringUtils.substringAfter(url, "/servlet/proxy/");
String query = clientRequest.getQueryString();
if (StringUtils.isEmpty(query)) {
url = url + "?" + query;
}
return url;
} else {
// java8不支持tandardCharsets.UTF_8对象作为参数的decode
return URLDecoder.decode(url, StandardCharsets.UTF_8.name());
}
return url;
} else {
return URLDecoder.decode(url, StandardCharsets.UTF_8);
} catch (UnsupportedEncodingException e) {
logger.error(e);
}
return null;
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册