Fix flags and client service authentication

master
René Jochum 2 years ago
parent 943bda59e1
commit 669d5abdfa
Signed by: jochum
GPG Key ID: F7D906F5E51E8E5E

@ -14,6 +14,7 @@ import (
"go-micro.dev/v4/client"
"go-micro.dev/v4/errors"
"google.golang.org/protobuf/types/known/emptypb"
"jochum.dev/jo-micro/auth2"
auth "jochum.dev/jo-micro/auth2"
iLogger "jochum.dev/jo-micro/router/internal/logger"
"jochum.dev/jo-micro/router/internal/proto/routerclientpb"
@ -60,7 +61,12 @@ func (h *Handler) Init(service micro.Service, engine *gin.Engine, routerAuth aut
for _, s := range services {
iLogger.Logrus().WithField("service", s.Name).Tracef("Found service")
client := routerclientpb.NewRouterClientService(s.Name, h.service.Client())
resp, err := client.Routes(ctx, &emptypb.Empty{})
sCtx, err := auth2.ClientAuthRegistry().Plugin().ServiceContext(ctx)
if err != nil {
iLogger.Logrus().Error(err)
continue
}
resp, err := client.Routes(sCtx, &emptypb.Empty{})
if err != nil {
iLogger.Logrus().Error(err)
// failure in getting routes, silently ignore

@ -23,20 +23,14 @@ import (
func internalService(routerHandler *handler.Handler) {
srv := micro.NewService()
flags := []cli.Flag{
&cli.StringFlag{
Name: "router_basepath",
Usage: "Router basepath",
EnvVars: []string{"MICRO_ROUTER_BASEPATH"},
Value: "router",
},
}
opts := []micro.Option{
micro.Name(config.Name + "-internal"),
micro.Version(config.Version),
micro.Flags(flags...),
micro.Action(func(c *cli.Context) error {
if err := auth2.ClientAuthRegistry().Init(c, srv); err != nil {
iLogger.Logrus().Fatal(err)
}
routerserverpb.RegisterRouterServerServiceHandler(srv.Server(), routerHandler)
r := router.NewHandler(
@ -60,9 +54,15 @@ func internalService(routerHandler *handler.Handler) {
iLogger.Logrus().Fatal(err)
}
// Stop the handler
if err := routerHandler.Stop(); err != nil {
iLogger.Logrus().Fatal(err)
}
// Stop the client/service auth plugin
if err := auth2.ClientAuthRegistry().Stop(); err != nil {
iLogger.Logrus().Fatal(err)
}
}
func main() {
@ -70,9 +70,9 @@ func main() {
micro.Server(httpServer.NewServer()),
)
authReg := auth2.RouterAuthRegistry()
routerAuthReg := auth2.RouterAuthRegistry()
flags := []cli.Flag{
flags := iLogger.AppendFlags(routerAuthReg.AppendFlags(auth2.ClientAuthRegistry().AppendFlags([]cli.Flag{
// General
&cli.BoolFlag{
Name: "router_debugmode",
@ -98,9 +98,7 @@ func main() {
EnvVars: []string{"MICRO_ROUTER_LISTEN"},
Value: ":8080",
},
}
flags = append(flags, iLogger.Flags()...)
flags = append(flags, authReg.Flags()...)
})))
routerHandler, err := handler.NewHandler()
if err != nil {
@ -120,7 +118,7 @@ func main() {
}
// Initialize the Auth Plugin over RouterAuthRegistry
if err := authReg.Init(c, srv); err != nil {
if err := routerAuthReg.Init(c, srv); err != nil {
iLogger.Logrus().Fatal(err)
}
@ -133,7 +131,7 @@ func main() {
r := gin.New()
// Initalize the Handler
if err := routerHandler.Init(srv, r, authReg.Plugin(), c.Int("router_refresh")); err != nil {
if err := routerHandler.Init(srv, r, routerAuthReg.Plugin(), c.Int("router_refresh")); err != nil {
iLogger.Logrus().Fatal(err)
}
@ -158,7 +156,7 @@ func main() {
}
// Stop the plugin in RouterAuthRegistry
if err := authReg.Stop(); err != nil {
if err := routerAuthReg.Stop(); err != nil {
iLogger.Logrus().Fatal(err)
}

@ -6,5 +6,6 @@ import (
_ "github.com/go-micro/plugins/v4/transport/grpc"
_ "github.com/go-micro/plugins/v4/transport/nats"
_ "jochum.dev/jo-micro/auth2/plugins/client/jwt"
_ "jochum.dev/jo-micro/auth2/plugins/router/jwt"
)

@ -7,6 +7,7 @@ import (
microLogrus "github.com/go-micro/plugins/v4/logger/logrus"
microLogger "go-micro.dev/v4/logger"
"jochum.dev/jo-micro/router/internal/util"
"github.com/sirupsen/logrus"
"github.com/urfave/cli/v2"
@ -15,15 +16,13 @@ import (
var myLogger *logrus.Logger = nil
var initialized = false
func Flags() []cli.Flag {
return []cli.Flag{
&cli.StringFlag{
Name: "loglevel",
Value: "info",
Usage: "Logrus log level default 'info', {panic,fatal,error,warn,info,debug,trace} available",
EnvVars: []string{"LOG_LEVEL"},
},
}
func AppendFlags(flags []cli.Flag) []cli.Flag {
return util.AppendFlag(flags, &cli.StringFlag{
Name: "router_loglevel",
Value: "info",
Usage: "Logrus log level default 'info', {panic,fatal,error,warn,info,debug,trace} available",
EnvVars: []string{"MICRO_ROUTER_LOG_LEVEL"},
})
}
func Intialized() bool {
@ -43,7 +42,7 @@ func Start(cli *cli.Context) error {
return nil
}
lvl, err := logrus.ParseLevel(cli.String("loglevel"))
lvl, err := logrus.ParseLevel(cli.String("router_loglevel"))
if err != nil {
return err
}

@ -0,0 +1,19 @@
package util
import "github.com/urfave/cli/v2"
func AppendFlag(flags []cli.Flag, flag cli.Flag) []cli.Flag {
has := false
for _, f := range flags {
if f.Names()[0] == flag.Names()[0] {
has = true
break
}
}
if has {
return flags
}
return append(flags, flag)
}
Loading…
Cancel
Save