Documentation ¶
Overview ¶
Package filters contains all the http handler chain filters which _are_ api related.
Index ¶
- func WithAudit(handler http.Handler, attributeGetter RequestAttributeGetter, out io.Writer) http.Handler
- func WithAuthorization(handler http.Handler, getAttribs RequestAttributeGetter, ...) http.Handler
- func WithImpersonation(handler http.Handler, requestContextMapper api.RequestContextMapper, ...) http.Handler
- func WithRequestInfo(handler http.Handler, resolver *request.RequestInfoFactory, ...) http.Handler
- type RequestAttributeGetter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func WithAudit ¶
func WithAudit(handler http.Handler, attributeGetter RequestAttributeGetter, out io.Writer) http.Handler
WithAudit decorates a http.Handler with audit logging information for all the requests coming to the server. If out is nil, no decoration takes place. Each audit log contains two entries: 1. the request line containing:
- unique id allowing to match the response line (see 2)
- source ip of the request
- HTTP method being invoked
- original user invoking the operation
- impersonated user for the operation
- namespace of the request or <none>
- uri is the full URI as requested
2. the response line containing:
- the unique id from 1
- response code
func WithAuthorization ¶
func WithAuthorization(handler http.Handler, getAttribs RequestAttributeGetter, a authorizer.Authorizer) http.Handler
WithAuthorizationCheck passes all authorized requests on to handler, and returns a forbidden error otherwise.
func WithImpersonation ¶
func WithImpersonation(handler http.Handler, requestContextMapper api.RequestContextMapper, a authorizer.Authorizer) http.Handler
WithImpersonation is a filter that will inspect and check requests that attempt to change the user.Info for their requests
func WithRequestInfo ¶
func WithRequestInfo(handler http.Handler, resolver *request.RequestInfoFactory, requestContextMapper api.RequestContextMapper) http.Handler
WithRequestInfo attaches a RequestInfo to the context.
Types ¶
type RequestAttributeGetter ¶
type RequestAttributeGetter interface {
GetAttribs(req *http.Request) (authorizer.Attributes, error)
}
RequestAttributeGetter is a function that extracts authorizer.Attributes from an http.Request
func NewRequestAttributeGetter ¶
func NewRequestAttributeGetter(requestContextMapper api.RequestContextMapper) RequestAttributeGetter
NewAttributeGetter returns an object which implements the RequestAttributeGetter interface.