File tree Expand file tree Collapse file tree 1 file changed +48
-0
lines changed
src/test/java/top/meethigher/proxy/http Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Original file line number Diff line number Diff line change 10
10
11
11
import java .time .Duration ;
12
12
import java .util .concurrent .TimeUnit ;
13
+ import java .util .concurrent .locks .LockSupport ;
13
14
14
15
public class ReverseHttpProxyBugTest {
15
16
@@ -93,4 +94,51 @@ public void reqClose() throws Exception {
93
94
94
95
TimeUnit .SECONDS .sleep (20 );
95
96
}
97
+
98
+
99
+ /**
100
+ * 跨域第一种情况
101
+ * 1. 响应头不允许跨域
102
+ */
103
+ @ Test
104
+ public void testAllowCros () throws Exception {
105
+ // 转发一个不允许跨域的后端 直接以https://meethigher.top
106
+ ReverseHttpProxy .create (vertx )
107
+ .port (4321 )
108
+ .addRoute (new ProxyRoute ()
109
+ .setSourceUrl ("/*" )
110
+ .setTargetUrl ("https://meethigher.top" )
111
+ .setFollowRedirects (false )
112
+ .setCorsControl (new ProxyRoute .CorsControl ().setEnable (true ).setAllowCors (true )))
113
+ .start ();
114
+ LockSupport .park ();
115
+ }
116
+
117
+ /**
118
+ * 跨域第二种情况
119
+ * 1. 响应头不允许跨域
120
+ * 2. 后端拦截OPTIONS
121
+ */
122
+ @ Test
123
+ public void testAllowCros2 () throws Exception {
124
+ // 后端
125
+ Vertx .vertx ().createHttpServer ().requestHandler (serverReq -> {
126
+ if (serverReq .method ().name ().equalsIgnoreCase ("options" )) {
127
+ serverReq .response ().setStatusCode (403 ).end ();
128
+ } else {
129
+ serverReq .response ().setStatusCode (200 ).end ();
130
+ }
131
+ }).listen (889 );
132
+
133
+ ReverseHttpProxy .create (vertx )
134
+ .port (4321 )
135
+ .addRoute (new ProxyRoute ()
136
+ .setSourceUrl ("/*" )
137
+ .setTargetUrl ("http://127.0.0.1:889" )
138
+ .setFollowRedirects (false )
139
+ .setCorsControl (new ProxyRoute .CorsControl ().setEnable (true ).setAllowCors (true ))
140
+ )
141
+ .start ();
142
+ LockSupport .park ();
143
+ }
96
144
}
You can’t perform that action at this time.
0 commit comments