Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ghsby
o2oa
提交
69b5fce7
o2oa
项目概览
ghsby
/
o2oa
落后 Fork 源项目 2880 个版本
Fork自
浙江兰德纵横网络技术股份有限公司 / o2oa
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
o2oa
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
69b5fce7
编写于
9月 27, 2020
作者:
O
o2null
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'release' into 'develop'
Release See merge request o2oa/o2oa!1740
上级
a0b892b5
75858aee
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
0 addition
and
45 deletion
+0
-45
o2server/x_console/src/main/java/com/x/server/console/server/web/Proxy.java
.../src/main/java/com/x/server/console/server/web/Proxy.java
+0
-45
未找到文件。
o2server/x_console/src/main/java/com/x/server/console/server/web/Proxy.java
浏览文件 @
69b5fce7
package
com.x.server.console.server.web
;
import
java.io.IOException
;
import
javax.servlet.ServletInputStream
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.commons.lang3.StringUtils
;
import
org.eclipse.jetty.client.api.ContentProvider
;
import
org.eclipse.jetty.client.api.Request
;
import
org.eclipse.jetty.client.api.Response
;
import
org.eclipse.jetty.client.util.DeferredContentProvider
;
import
org.eclipse.jetty.proxy.ProxyServlet
;
import
org.eclipse.jetty.util.Callback
;
public
class
Proxy
extends
ProxyServlet
{
...
...
@@ -49,40 +40,4 @@ public class Proxy extends ProxyServlet {
return
":"
+
port
;
}
@Override
protected
ContentProvider
proxyRequestContent
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Request
proxyRequest
)
throws
IOException
{
ServletInputStream
input
=
request
.
getInputStream
();
DeferredContentProvider
provider
=
new
DeferredContentProvider
();
input
.
setReadListener
(
newReadListener
(
request
,
response
,
proxyRequest
,
provider
));
return
provider
;
}
@Override
protected
void
onResponseContent
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Response
proxyResponse
,
byte
[]
buffer
,
int
offset
,
int
length
,
Callback
callback
)
{
try
{
if
(
_log
.
isDebugEnabled
())
_log
.
debug
(
"{} proxying content to downstream: {} bytes"
,
getRequestId
(
request
),
length
);
StreamWriter
writeListener
=
(
StreamWriter
)
request
.
getAttribute
(
WRITE_LISTENER_ATTRIBUTE
);
if
(
writeListener
==
null
)
{
writeListener
=
newWriteListener
(
request
,
proxyResponse
);
request
.
setAttribute
(
WRITE_LISTENER_ATTRIBUTE
,
writeListener
);
// Set the data to write before calling setWriteListener(), because
// setWriteListener() may trigger the call to onWritePossible() on
// a different thread and we would have a race.
writeListener
.
data
(
buffer
,
offset
,
length
,
callback
);
// Setting the WriteListener triggers an invocation to onWritePossible().
response
.
getOutputStream
().
setWriteListener
(
writeListener
);
}
else
{
writeListener
.
data
(
buffer
,
offset
,
length
,
callback
);
writeListener
.
onWritePossible
();
}
}
catch
(
Throwable
x
)
{
callback
.
failed
(
x
);
proxyResponse
.
abort
(
x
);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录