cmd/dex: adding reflection to grpc api, enabled through configuration
This commit is contained in:
parent
bc02006b45
commit
b65966d744
@ -12,11 +12,13 @@ Admins that wish to expose the gRPC service must add the following entry to the
|
|||||||
grpc:
|
grpc:
|
||||||
# Cannot be the same address as an HTTP(S) service.
|
# Cannot be the same address as an HTTP(S) service.
|
||||||
addr: 127.0.0.1:5557
|
addr: 127.0.0.1:5557
|
||||||
# Server certs. If TLS credentials aren't provided dex will generate self-signed ones.
|
# Server certs. If TLS credentials aren't provided dex will run in plaintext (HTTP) mode.
|
||||||
tlsCert: /etc/dex/grpc.crt
|
tlsCert: /etc/dex/grpc.crt
|
||||||
tlsKey: /etc/dex/grpc.key
|
tlsKey: /etc/dex/grpc.key
|
||||||
# Client auth CA.
|
# Client auth CA.
|
||||||
tlsClientCA: /etc/dex/client.crt
|
tlsClientCA: /etc/dex/client.crt
|
||||||
|
# enable reflection
|
||||||
|
reflection: true
|
||||||
```
|
```
|
||||||
|
|
||||||
## Generating clients
|
## Generating clients
|
||||||
|
@ -150,6 +150,7 @@ type GRPC struct {
|
|||||||
TLSCert string `json:"tlsCert"`
|
TLSCert string `json:"tlsCert"`
|
||||||
TLSKey string `json:"tlsKey"`
|
TLSKey string `json:"tlsKey"`
|
||||||
TLSClientCA string `json:"tlsClientCA"`
|
TLSClientCA string `json:"tlsClientCA"`
|
||||||
|
Reflection bool `json:"reflection"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Storage holds app's storage configuration.
|
// Storage holds app's storage configuration.
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"google.golang.org/grpc/credentials"
|
"google.golang.org/grpc/credentials"
|
||||||
|
"google.golang.org/grpc/reflection"
|
||||||
|
|
||||||
"github.com/dexidp/dex/api"
|
"github.com/dexidp/dex/api"
|
||||||
"github.com/dexidp/dex/pkg/log"
|
"github.com/dexidp/dex/pkg/log"
|
||||||
@ -282,6 +283,10 @@ func serve(cmd *cobra.Command, args []string) error {
|
|||||||
s := grpc.NewServer(grpcOptions...)
|
s := grpc.NewServer(grpcOptions...)
|
||||||
api.RegisterDexServer(s, server.NewAPI(serverConfig.Storage, logger))
|
api.RegisterDexServer(s, server.NewAPI(serverConfig.Storage, logger))
|
||||||
grpcMetrics.InitializeMetrics(s)
|
grpcMetrics.InitializeMetrics(s)
|
||||||
|
if c.GRPC.Reflection {
|
||||||
|
logger.Info("enabling reflection in grpc service")
|
||||||
|
reflection.Register(s)
|
||||||
|
}
|
||||||
err = s.Serve(list)
|
err = s.Serve(list)
|
||||||
return fmt.Errorf("listening on %s failed: %v", c.GRPC.Addr, err)
|
return fmt.Errorf("listening on %s failed: %v", c.GRPC.Addr, err)
|
||||||
}()
|
}()
|
||||||
|
Reference in New Issue
Block a user