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  }