@@ -109,8 +109,8 @@ func createServerCmd(execer fakeruntime.Execer, httpServer server.HTTPServer) (c
109109
110110 // gc related flags
111111 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" )
114114 flags .StringVarP (& opt .tlsCert , "cert-file" , "" , "" , "The path to the certificate file, Alow SAN certificates" )
115115 flags .StringVarP (& opt .tlsKey , "key-file" , "" , "" , "The path to the key file, Alow SAN certificates" )
116116
@@ -124,8 +124,12 @@ type serverOption struct {
124124 httpServer server.HTTPServer
125125 execer fakeruntime.Execer
126126
127- port int
128- httpPort int
127+ port int
128+ httpPort int
129+ tls bool
130+ tlsCert string
131+ tlsKey string
132+
129133 printProto bool
130134 localStorage []string
131135 consolePath string
@@ -148,17 +152,12 @@ type serverOption struct {
148152 mockConfig []string
149153 mockPrefix string
150154
151- gcPercent int
152-
153- dryRun bool
154-
155+ gcPercent int
156+ dryRun bool
155157 grpcMaxRecvMsgSize int
156158
157159 // inner fields, not as command flags
158160 provider oauth.OAuthProvider
159- tls bool
160- tlsCert string
161- tlsKey string
162161}
163162
164163func (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) {
190189
191190 grpcOpts = append (grpcOpts , atestoauth .NewAuthInterceptor (o .oauthGroup ))
192191 }
192+
193193 if o .tls {
194194 if o .tlsCert != "" && o .tlsKey != "" {
195195 creds , err := credentials .NewServerTLSFromFile (o .tlsCert , o .tlsKey )
196196 if err != nil {
197197 return fmt .Errorf ("failed to load credentials: %v" , err )
198198 }
199199 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
200203 }
201204 }
205+
202206 if o .dryRun {
203207 o .gRPCServer = & fakeGRPCServer {}
204208 } else {
@@ -278,7 +282,7 @@ func (o *serverOption) runE(cmd *cobra.Command, args []string) (err error) {
278282 mockWriter = mock .NewInMemoryReader ("" )
279283 }
280284
281- dynamicMockServer := mock .NewInMemoryServer (cmd .Context (), 0 )
285+ dynamicMockServer := mock .NewInMemoryServer (cmd .Context (), 0 ). WithTLS ( o . tlsCert , o . tlsKey )
282286 mockServerController := server .NewMockServerController (mockWriter , dynamicMockServer , o .httpPort )
283287
284288 clean := make (chan os.Signal , 1 )
@@ -330,15 +334,18 @@ func (o *serverOption) runE(cmd *cobra.Command, args []string) (err error) {
330334 gRPCServerAddr := fmt .Sprintf ("127.0.0.1:%s" , gRPCServerPort )
331335
332336 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" )
334339 if err != nil {
335340 return fmt .Errorf ("failed to load credentials: %v" , err )
336341 }
342+
343+ opts := []grpc.DialOption {grpc .WithTransportCredentials (creds )}
337344 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 ))
342349 } else {
343350 dialOption := []grpc.DialOption {grpc .WithTransportCredentials (insecure .NewCredentials ()),
344351 grpc .WithDefaultCallOptions (grpc .MaxCallRecvMsgSize (math .MaxInt ))}
0 commit comments