Documentation ¶
Index ¶
- Constants
- Variables
- func ClientPropagation(client *conf.Client, opt *Option, tokenMgr TokenManager, logger log.Logger) middleware.Middleware
- func NewGrpcConn(clientName ClientName, serviceName string, services *conf.Services, ...) (grpcx.ClientConnInterface, func())
- func NewHttpClient(clientName ClientName, serviceName string, services *conf.Services, ...) (*http.Client, func())
- func ServerPropagation(opt *Option, validator TrustedContextValidator, logger log.Logger) middleware.Middleware
- type ClientName
- type ClientPropagator
- type ClientTrustedContextValidator
- type Header
- type HeaderCarrier
- type InMemoryTokenManager
- type Option
- type Propagator
- type SaasPropagator
- type TokenManager
- type TrustedContextValidator
- type UserPropagator
Constants ¶
View Source
const ( InternalKeyPrefix = "internal-" TenantKey = InternalKeyPrefix + "tenant" TenantInfoKey = InternalKeyPrefix + "tenant-info" TenantFilterKey = InternalKeyPrefix + "tenant-data-filter" TenantAutoSetKey = InternalKeyPrefix + "tenant-data-autoset" UserKey = InternalKeyPrefix + "user" ClientKey = InternalKeyPrefix + "client" )
Variables ¶
View Source
var DefaultProviderSet = wire.NewSet( NewDefaultOption, NewInMemoryTokenManager, wire.Bind(new(TokenManager), new(*InMemoryTokenManager)), NewClientTrustedContextValidator, )
Functions ¶
func ClientPropagation ¶ added in v0.0.2
func ClientPropagation(client *conf.Client, opt *Option, tokenMgr TokenManager, logger log.Logger) middleware.Middleware
func NewGrpcConn ¶
func NewGrpcConn( clientName ClientName, serviceName string, services *conf.Services, opt *Option, tokenMgr TokenManager, logger log.Logger, opts ...grpc.ClientOption, ) (grpcx.ClientConnInterface, func())
NewGrpcConn create new grpc client from name
func NewHttpClient ¶
func NewHttpClient(clientName ClientName, serviceName string, services *conf.Services, opt *Option, tokenMgr TokenManager, logger log.Logger, opts ...http.ClientOption) (*http.Client, func())
NewHttpClient create new http client from name
func ServerPropagation ¶ added in v0.0.2
func ServerPropagation(opt *Option, validator TrustedContextValidator, logger log.Logger) middleware.Middleware
Types ¶
type ClientName ¶
type ClientName string
type ClientPropagator ¶ added in v0.0.2
type ClientPropagator struct {
// contains filtered or unexported fields
}
func NewClientPropagator ¶ added in v0.0.2
func NewClientPropagator(extractOnly bool, logger log.Logger) *ClientPropagator
func (*ClientPropagator) Fields ¶ added in v0.0.2
func (u *ClientPropagator) Fields() []string
type ClientTrustedContextValidator ¶ added in v0.0.2
type ClientTrustedContextValidator struct { }
type HeaderCarrier ¶ added in v0.0.2
func (HeaderCarrier) Get ¶ added in v0.0.2
func (h HeaderCarrier) Get(key string) string
func (HeaderCarrier) HasKey ¶ added in v0.0.2
func (h HeaderCarrier) HasKey(key string) bool
func (HeaderCarrier) Set ¶ added in v0.0.2
func (h HeaderCarrier) Set(key, value string)
type InMemoryTokenManager ¶
type InMemoryTokenManager struct {
// contains filtered or unexported fields
}
InMemoryTokenManager TODO should use centralize authorization server to get jwt
func NewInMemoryTokenManager ¶
func NewInMemoryTokenManager(tokenizer jwt.Tokenizer, logger log.Logger) *InMemoryTokenManager
func (*InMemoryTokenManager) GetOrGenerateToken ¶
type Option ¶
type Option struct { Propagators []Propagator BypassToken bool Insecure bool }
func NewDefaultOption ¶
func NewOption ¶
func NewOption(bypassToken bool, propagators ...Propagator) *Option
func (*Option) WithInsecure ¶ added in v0.0.3
type Propagator ¶ added in v0.0.2
type Propagator interface { Extract(ctx context.Context, carrier Header) (context.Context, error) Inject(ctx context.Context, carrier Header) error Fields() []string }
Propagator propagates cross-cutting concerns as key-value text pairs within a carrier that travels in-band across process boundaries to keep same state across services
type SaasPropagator ¶ added in v0.0.2
type SaasPropagator struct {
// contains filtered or unexported fields
}
func NewSaasPropagator ¶ added in v0.0.2
func NewSaasPropagator(logger log.Logger) *SaasPropagator
func (*SaasPropagator) Fields ¶ added in v0.0.2
func (s *SaasPropagator) Fields() []string
type TokenManager ¶
type TrustedContextValidator ¶ added in v0.0.2
TrustedContextValidator validate whether the communication is behind authed gateway or server to server communication
func NewClientTrustedContextValidator ¶ added in v0.0.2
func NewClientTrustedContextValidator() TrustedContextValidator
type UserPropagator ¶ added in v0.0.2
type UserPropagator struct {
// contains filtered or unexported fields
}
func NewUserPropagator ¶ added in v0.0.2
func NewUserPropagator(logger log.Logger) *UserPropagator
func (*UserPropagator) Fields ¶ added in v0.0.2
func (u *UserPropagator) Fields() []string
Click to show internal directories.
Click to hide internal directories.