Documentation ¶
Overview ¶
Package identity extracts the callers contextual identity information from the HTTP/TLS requests and exposes them for access via the generalized go context model.
Index ¶
- Constants
- func AddToContext(ctx context.Context, rq *RequestContext) context.Context
- func ClientIPFromRequest(r *http.Request) string
- func NewAuthUnaryInterceptor(identityMapper ProviderFromContext) grpc.UnaryServerInterceptor
- func NewContextHandler(delegate http.Handler, identityMapper ProviderFromRequest) http.Handler
- func SetGlobalNodeInfo(n netutil.NodeInfo)
- func WithTestIdentity(r *http.Request, identity Identity) *http.Request
- type Context
- type Identity
- type NodeInfoFactory
- type ProviderFromContext
- type ProviderFromRequest
- type RequestContext
Constants ¶
const GuestRoleName = "guest"
GuestRoleName is default role name for guest
Variables ¶
This section is empty.
Functions ¶
func AddToContext ¶
func AddToContext(ctx context.Context, rq *RequestContext) context.Context
AddToContext returns a new golang context that adds `rq` as the dolly request context.
func ClientIPFromRequest ¶
ClientIPFromRequest return client's real public IP address from http request headers.
func NewAuthUnaryInterceptor ¶ added in v0.6.0
func NewAuthUnaryInterceptor(identityMapper ProviderFromContext) grpc.UnaryServerInterceptor
NewAuthUnaryInterceptor returns grpc.UnaryServerInterceptor that identity to the context
func NewContextHandler ¶
func NewContextHandler(delegate http.Handler, identityMapper ProviderFromRequest) http.Handler
NewContextHandler returns a handler that will extact the role & contextID from the request and stash them away in the request context for later handlers to use. Also adds header to indicate which host is currently servicing the request
func SetGlobalNodeInfo ¶
SetGlobalNodeInfo applies NodeInfo for the application
Types ¶
type Context ¶
Context represents user contextual information about a request being processed by the server, it includes identity, CorrelationID [for cross system request correlation].
type Identity ¶
type Identity interface { String() string UserID() string Role() string Name() string UserInfo() interface{} }
Identity contains information about the identity of an API caller
func GuestIdentityForContext ¶ added in v0.7.0
GuestIdentityForContext always returns "guest" for the role
func GuestIdentityMapper ¶
GuestIdentityMapper always returns "guest" for the role
func NewIdentity ¶
NewIdentity returns a new Identity instance with the indicated role
func NewIdentityWithUserInfo ¶
NewIdentityWithUserInfo returns a new Identity instance with the indicated role and user info
type NodeInfoFactory ¶ added in v0.5.0
NodeInfoFactory returns NodeInfo
type ProviderFromContext ¶ added in v0.7.0
ProviderFromContext returns Identity from supplied context
type ProviderFromRequest ¶ added in v0.7.0
ProviderFromRequest returns Identity from supplied HTTP request
type RequestContext ¶
type RequestContext struct {
// contains filtered or unexported fields
}
RequestContext represents user contextual information about a request being processed by the server, it includes identity, CorrelationID [for cross system request correlation].
func FromContext ¶
func FromContext(ctx context.Context) *RequestContext
FromContext extracts the RequestContext stored inside a go context. Returns null if no such value exists.
func FromRequest ¶ added in v0.7.0
func FromRequest(r *http.Request) *RequestContext
FromRequest returns the full context ascocicated with this http request.
func NewRequestContext ¶
func NewRequestContext(id Identity) *RequestContext
NewRequestContext creates a request context with a specific identity.
func (*RequestContext) ClientIP ¶
func (c *RequestContext) ClientIP() string
ClientIP returns request's IP
func (*RequestContext) CorrelationID ¶
func (c *RequestContext) CorrelationID() string
CorrelationID returns request's CorrelationID, extracted from X-CorrelationID header. If it was not provided by the client, the a random will be generated.
func (*RequestContext) Identity ¶
func (c *RequestContext) Identity() Identity
Identity returns request's identity