Documentation ¶
Index ¶
Constants ¶
View Source
const KeyClaim claim = "claim"
Variables ¶
View Source
var ErrInvalidToken = errors.New("invalid token claims")
View Source
var ErrUnexpectedSigningToken = errors.New("unexpected token signing method")
Functions ¶
func AlwaysAllowFunc ¶
func AlwaysAllowFunc() bool
Types ¶
type Interceptor ¶
type Interceptor struct {
// contains filtered or unexported fields
}
func NewAuthInterceptor ¶
func NewAuthInterceptor(jwtManager *Manager, policyClient *policyclient.Client) *Interceptor
NewAuthInterceptor returns an instance of Interceptor. It takes in Manager struct, and policyClient as input. Policy Client allows to dynamically change authorization policies.
func (*Interceptor) Stream ¶
func (interceptor *Interceptor) Stream() grpc.StreamServerInterceptor
Custom Stream interceptor that adds claim extraction and authorization
func (*Interceptor) Unary ¶
func (interceptor *Interceptor) Unary() grpc.UnaryServerInterceptor
Custom Unary( interceptor that adds claim extraction and authorization
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
type StreamClaimInjector ¶
type StreamClaimInjector struct { grpc.ServerStream Claims *UserClaims }
Custom Stream that allows embedding of user claims for stream grpc (Similar to what describe in: https://stackoverflow.com/questions/60982406/how-to-safely-add-values-to-grpc-serverstream-in-interceptor)
func (StreamClaimInjector) Context ¶
func (s StreamClaimInjector) Context() context.Context
type UserClaims ¶
type UserClaims struct { jwt.RegisteredClaims Username string `json:"username"` TeamID string `json:"team_id"` Role string `json:"role"` }
UserClaims represents contents of JWT token.
Click to show internal directories.
Click to hide internal directories.