@@ -109,8 +109,8 @@ func createServerCmd(execer fakeruntime.Execer, httpServer server.HTTPServer) (c
109
109
110
110
// gc related flags
111
111
flags .IntVarP (& opt .gcPercent , "gc-percent" , "" , 100 , "The GC percent of Go" )
112
- //grpc_tls
113
- flags .BoolVarP (& opt .tls , "tls-grpc " , "" , false , "Enable TLS mode. Set to true to enable TLS. Alow SAN certificates" )
112
+
113
+ flags .BoolVarP (& opt .tls , "tls" , "" , false , "Enable TLS mode. Set to true to enable TLS. Alow SAN certificates" )
114
114
flags .StringVarP (& opt .tlsCert , "cert-file" , "" , "" , "The path to the certificate file, Alow SAN certificates" )
115
115
flags .StringVarP (& opt .tlsKey , "key-file" , "" , "" , "The path to the key file, Alow SAN certificates" )
116
116
@@ -124,8 +124,12 @@ type serverOption struct {
124
124
httpServer server.HTTPServer
125
125
execer fakeruntime.Execer
126
126
127
- port int
128
- httpPort int
127
+ port int
128
+ httpPort int
129
+ tls bool
130
+ tlsCert string
131
+ tlsKey string
132
+
129
133
printProto bool
130
134
localStorage []string
131
135
consolePath string
@@ -148,17 +152,12 @@ type serverOption struct {
148
152
mockConfig []string
149
153
mockPrefix string
150
154
151
- gcPercent int
152
-
153
- dryRun bool
154
-
155
+ gcPercent int
156
+ dryRun bool
155
157
grpcMaxRecvMsgSize int
156
158
157
159
// inner fields, not as command flags
158
160
provider oauth.OAuthProvider
159
- tls bool
160
- tlsCert string
161
- tlsKey string
162
161
}
163
162
164
163
func (o * serverOption ) preRunE (cmd * cobra.Command , args []string ) (err error ) {
@@ -190,15 +189,20 @@ func (o *serverOption) preRunE(cmd *cobra.Command, args []string) (err error) {
190
189
191
190
grpcOpts = append (grpcOpts , atestoauth .NewAuthInterceptor (o .oauthGroup ))
192
191
}
192
+
193
193
if o .tls {
194
194
if o .tlsCert != "" && o .tlsKey != "" {
195
195
creds , err := credentials .NewServerTLSFromFile (o .tlsCert , o .tlsKey )
196
196
if err != nil {
197
197
return fmt .Errorf ("failed to load credentials: %v" , err )
198
198
}
199
199
grpcOpts = append (grpcOpts , grpc .Creds (creds ))
200
+ } else {
201
+ err = fmt .Errorf ("both --cert-file and --key-file flags are required when --tls is enabled" )
202
+ return
200
203
}
201
204
}
205
+
202
206
if o .dryRun {
203
207
o .gRPCServer = & fakeGRPCServer {}
204
208
} else {
@@ -278,7 +282,7 @@ func (o *serverOption) runE(cmd *cobra.Command, args []string) (err error) {
278
282
mockWriter = mock .NewInMemoryReader ("" )
279
283
}
280
284
281
- dynamicMockServer := mock .NewInMemoryServer (cmd .Context (), 0 )
285
+ dynamicMockServer := mock .NewInMemoryServer (cmd .Context (), 0 ). WithTLS ( o . tlsCert , o . tlsKey )
282
286
mockServerController := server .NewMockServerController (mockWriter , dynamicMockServer , o .httpPort )
283
287
284
288
clean := make (chan os.Signal , 1 )
@@ -330,15 +334,18 @@ func (o *serverOption) runE(cmd *cobra.Command, args []string) (err error) {
330
334
gRPCServerAddr := fmt .Sprintf ("127.0.0.1:%s" , gRPCServerPort )
331
335
332
336
if o .tls {
333
- creds , err := credentials .NewClientTLSFromFile (o .tlsCert , "localhost" )
337
+ var creds credentials.TransportCredentials
338
+ creds , err = credentials .NewClientTLSFromFile (o .tlsCert , "127.0.0.1" )
334
339
if err != nil {
335
340
return fmt .Errorf ("failed to load credentials: %v" , err )
336
341
}
342
+
343
+ opts := []grpc.DialOption {grpc .WithTransportCredentials (creds )}
337
344
err = errors .Join (
338
- server .RegisterRunnerHandlerFromEndpoint (ctx , mux , gRPCServerAddr , []grpc. DialOption { grpc . WithTransportCredentials ( creds )} ),
339
- server .RegisterMockHandlerFromEndpoint (ctx , mux , gRPCServerAddr , []grpc. DialOption { grpc . WithTransportCredentials ( creds )} ),
340
- server .RegisterThemeExtensionHandlerFromEndpoint (ctx , mux , gRPCServerAddr , []grpc. DialOption { grpc . WithTransportCredentials ( creds )} ),
341
- server .RegisterDataServerHandlerFromEndpoint (ctx , mux , gRPCServerAddr , []grpc. DialOption { grpc . WithTransportCredentials ( creds )} ))
345
+ server .RegisterRunnerHandlerFromEndpoint (ctx , mux , gRPCServerAddr , opts ),
346
+ server .RegisterMockHandlerFromEndpoint (ctx , mux , gRPCServerAddr , opts ),
347
+ server .RegisterThemeExtensionHandlerFromEndpoint (ctx , mux , gRPCServerAddr , opts ),
348
+ server .RegisterDataServerHandlerFromEndpoint (ctx , mux , gRPCServerAddr , opts ))
342
349
} else {
343
350
dialOption := []grpc.DialOption {grpc .WithTransportCredentials (insecure .NewCredentials ()),
344
351
grpc .WithDefaultCallOptions (grpc .MaxCallRecvMsgSize (math .MaxInt ))}
0 commit comments