mosn

Форк
0
/
tls_fallback_test.go 
192 строки · 4.0 Кб
1
//go:build MOSNTest
2
// +build MOSNTest
3

4
package tls
5

6
import (
7
	"testing"
8

9
	. "mosn.io/mosn/test/framework"
10
	"mosn.io/mosn/test/lib"
11
	"mosn.io/mosn/test/lib/xprotocol/boltv1"
12
)
13

14
func TestServerNotSupportTLS(t *testing.T) {
15
	Scenario(t, "server side mosn not support tls, but client request with tls", func() {
16
		lib.InitMosn(mistakeTLSConfig, lib.CreateConfig(MockBoltServerConfig))
17
		Case("client request tls, trigger fallback", func() {
18
			client := lib.CreateClient("bolt", &boltv1.BoltClientConfig{
19
				TargetAddr: "127.0.0.1:2045",
20
				Request: &boltv1.RequestConfig{
21
					Header: map[string]string{
22
						"service": "fallback",
23
					},
24
				},
25
				Verify: &boltv1.VerifyConfig{
26
					ExpectedStatusCode: 0,
27
				},
28
			})
29
			Verify(client.SyncCall(), Equal, true)
30
		})
31
		Case("client rquest tls, no fallback", func() {
32
			client := lib.CreateClient("bolt", &boltv1.BoltClientConfig{
33
				TargetAddr: "127.0.0.1:2045",
34
				Request: &boltv1.RequestConfig{
35
					Header: map[string]string{
36
						"service": "test",
37
					},
38
				},
39
				Verify: &boltv1.VerifyConfig{
40
					ExpectedStatusCode: 6, // expected got a ResponseStatusNoProcessor
41
				},
42
			})
43
			Verify(client.SyncCall(), Equal, true)
44
		})
45
	})
46
}
47

48
const mistakeTLSConfig = `{
49
	"servers":[
50
		{
51
			"default_log_path":"stdout",
52
			"default_log_level": "INFO",
53
			"routers":[
54
				{
55
					"router_config_name":"router_to_mosn",
56
					"virtual_hosts":[{
57
						"name":"mosn_hosts",
58
						"domains": ["*"],
59
						"routers": [
60
							{
61
								"match":{"headers":[{"name":"service","value":"fallback"}]},
62
								"route":{"cluster_name":"mosn_cluster"}
63
							},
64
							{
65
								 "match":{"headers":[{"name":"service","value":"test"}]},
66
								 "route":{"cluster_name":"mosn_cluster2"}
67
							}
68
						]
69
					}]
70
				},
71
				{
72
					"router_config_name":"router_to_server",
73
					"virtual_hosts":[{
74
						"name":"server_hosts",
75
						"domains": ["*"],
76
						"routers": [
77
							{
78
								"match":{"headers":[{"name":"service","value":".*"}]},
79
								"route":{"cluster_name":"server_cluster"}
80
							}
81
						]
82
					}]
83
				}
84
			],
85
			"listeners":[
86
				{
87
					"address":"127.0.0.1:2045",
88
					"bind_port": true,
89
					"filter_chains": [{
90
						"filters": [
91
							{
92
								"type": "proxy",
93
								"config": {
94
									"downstream_protocol": "X",
95
									"upstream_protocol": "X",
96
									"extend_config": {
97
										 "sub_protocol": "bolt"
98
									},
99
									"router_config_name":"router_to_mosn"
100
								}
101
							}
102
						]
103
					}]
104
				},
105
				{
106
					"address":"127.0.0.1:2046",
107
					"bind_port": true,
108
					"filter_chains": [{
109
						"filters": [
110
							{
111
								 "type": "proxy",
112
								 "config": {
113
									 "downstream_protocol": "X",
114
									 "upstream_protocol": "X",
115
									 "extend_config": {
116
										 "sub_protocol": "bolt"
117
									 },
118
									 "router_config_name":"router_to_server"
119
								 }
120
							}
121
						]
122
					}]
123
				},
124
				{
125
					"address":"127.0.0.1:2047",
126
					"bind_port": true,
127
					"filter_chains": [{
128
						"filters": [
129
							{
130
								"type": "proxy",
131
								"config": {
132
									"downstream_protocol": "X",
133
									"upstream_protocol": "X",
134
									"extend_config": {
135
										 "sub_protocol": "bolt"
136
									},
137
									"router_config_name":"router_to_server"
138
								}
139
							}
140
						]
141
					}]
142
				}
143
			]
144
		}
145
	],
146
	"cluster_manager": {
147
		"clusters":[
148
			{
149
				"name": "mosn_cluster",
150
				"type": "SIMPLE",
151
				"lb_type": "LB_RANDOM",
152
				"tls_context": {
153
					"status": true,
154
					"insecure_skip": true,
155
					"fall_back": true
156
				},
157
				"hosts":[
158
					{"address":"127.0.0.1:2046"}
159
				]
160
			},
161
			{
162
				"name": "mosn_cluster2",
163
				"type": "SIMPLE",
164
				"lb_type": "LB_RANDOM",
165
				"tls_context": {
166
					"status": true,
167
					"insecure_skip": true
168
				},
169
				"hosts":[
170
					{"address":"127.0.0.1:2047"}
171
				]
172

173
			},
174
			{
175
				"name": "server_cluster",
176
				"type": "SIMPLE",
177
				"lb_type": "LB_RANDOM",
178
				"hosts":[
179
					{"address":"127.0.0.1:8080"}
180
				]
181
			}
182
		]
183
	},
184
	"admin": {
185
		"address": {
186
			"socket_address": {
187
				"address": "127.0.0.1",
188
				"port_value": 34901
189
			}
190
		}
191
	}
192
}`
193

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.