github.com/pavlo67/common@v0.5.3/common/auth/auth_jwt/jwt_starter.go (about) 1 package auth_jwt 2 3 import ( 4 "fmt" 5 "strings" 6 7 "github.com/pavlo67/common/common" 8 "github.com/pavlo67/common/common/config" 9 "github.com/pavlo67/common/common/errors" 10 "github.com/pavlo67/common/common/joiner" 11 "github.com/pavlo67/common/common/logger" 12 "github.com/pavlo67/common/common/starter" 13 ) 14 15 const InterfaceKey joiner.InterfaceKey = "auth_jwt" 16 17 func Starter() starter.Operator { 18 return &identity_jwtStarter{} 19 } 20 21 var l logger.Operator 22 var _ starter.Operator = &identity_jwtStarter{} 23 24 type identity_jwtStarter struct { 25 interfaceKey joiner.InterfaceKey 26 // interfaceSetCredsKey joiner.InterfaceKey 27 keyPath string 28 } 29 30 func (ss *identity_jwtStarter) Name() string { 31 return logger.GetCallInfo().PackageName 32 } 33 34 func (ss *identity_jwtStarter) Run(cfg *config.Envs, options common.Map, joinerOp joiner.Operator, l_ logger.Operator) error { 35 l = l_ 36 37 var cfgAuthJWT common.Map 38 if err := cfg.Value("auth_jwt", &cfgAuthJWT); err != nil { 39 return err 40 } 41 42 // var errs basis.multipleErrors 43 ss.keyPath = strings.TrimSpace(cfgAuthJWT.StringDefault("key_path", "")) 44 if ss.keyPath == "" { 45 ss.keyPath = "./" 46 } else if ss.keyPath[len(ss.keyPath)-1] != '/' { 47 ss.keyPath += "/" 48 } 49 50 ss.interfaceKey = joiner.InterfaceKey(options.StringDefault("interface_key", string(InterfaceKey))) 51 // ss.interfaceSetCredsKey = joiner.InterfaceKey(options.StringDefault("interface_key", string(InterfaceKey))) 52 53 authOp, err := New(ss.keyPath + "jwt.key") 54 if err != nil || authOp == nil { 55 return errors.CommonError(err, fmt.Sprintf("got %#v", authOp)) 56 } 57 58 if err = joinerOp.Join(authOp, ss.interfaceKey); err != nil { 59 return errors.Wrapf(err, "can't join auth_jwt as auth.Operator with key '%s'", ss.interfaceKey) 60 } 61 62 //if ss.interfaceKey != ss.interfaceSetCredsKey { 63 // if err = joinerOp.Join(authOp, ss.interfaceSetCredsKey); err != nil { 64 // return errors.Wrapf(err, "can't join auth_jwt as auth.Operator with key '%s'", ss.interfaceSetCredsKey) 65 // } 66 //} 67 68 return nil 69 }