Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Authorizer ¶
type Authorizer struct {
Name string `json:"-"`
Context string `json:"context,omitempty" xml:"context,omitempty" yaml:"context,omitempty"`
PrimaryInstance bool `json:"primary,omitempty" xml:"primary,omitempty" yaml:"primary,omitempty"`
AuthURLPath string `json:"auth_url_path,omitempty" xml:"auth_url_path,omitempty" yaml:"auth_url_path,omitempty"`
AuthRedirectDisabled bool `json:"disable_auth_redirect,omitempty" xml:"disable_auth_redirect,omitempty" yaml:"disable_auth_redirect,omitempty"`
AuthRedirectQueryDisabled bool `` /* 133-byte string literal not displayed */
AuthRedirectQueryParameter string `` /* 127-byte string literal not displayed */
// The status code for the HTTP redirect for non-authorized users.
AuthRedirectStatusCode int `` /* 127-byte string literal not displayed */
// Enable the redirect with Javascript, as opposed to HTTP redirect.
RedirectWithJavascript bool `json:"redirect_with_javascript,omitempty" xml:"redirect_with_javascript,omitempty" yaml:"redirect_with_javascript,omitempty"`
// The list of URI prefixes which bypass authorization.
BypassConfigs []*BypassConfig `json:"bypass_configs,omitempty" xml:"bypass_configs,omitempty" yaml:"bypass_configs,omitempty"`
// The list of mappings between header names and field names.
HeaderInjectionConfigs []*HeaderInjectionConfig `json:"header_injection_configs,omitempty" xml:"header_injection_configs,omitempty" yaml:"header_injection_configs,omitempty"`
AccessListRules []*acl.RuleConfiguration `json:"access_list_rules,omitempty" xml:"access_list_rules,omitempty" yaml:"access_list_rules,omitempty"`
CryptoKeyConfigs []*kms.CryptoKeyConfig `json:"crypto_key_configs,omitempty" xml:"crypto_key_configs,omitempty" yaml:"crypto_key_configs,omitempty"`
// CryptoKeyStoreConfig hold the default configuration for the keys, e.g. token name and lifetime.
CryptoKeyStoreConfig map[string]interface{} `json:"crypto_key_store_config,omitempty" xml:"crypto_key_store_config,omitempty" yaml:"crypto_key_store_config,omitempty"`
IdentityProviderConfig *idp.IdentityProviderConfig `json:"identity_provider_config,omitempty" xml:"identity_provider_config,omitempty" yaml:"identity_provider_config,omitempty"`
AllowedTokenSources []string `json:"allowed_token_sources,omitempty" xml:"allowed_token_sources,omitempty" yaml:"allowed_token_sources,omitempty"`
StripTokenEnabled bool `json:"strip_token_enabled,omitempty" xml:"strip_token_enabled,omitempty" yaml:"strip_token_enabled,omitempty"`
ForbiddenURL string `json:"forbidden_url,omitempty" xml:"forbidden_url,omitempty" yaml:"forbidden_url,omitempty"`
UserIdentityField string `json:"user_identity_field,omitempty" xml:"user_identity_field,omitempty" yaml:"user_identity_field,omitempty"`
ValidateBearerHeader bool `json:"validate_bearer_header,omitempty" xml:"validate_bearer_header,omitempty" yaml:"validate_bearer_header,omitempty"`
ValidateMethodPath bool `json:"validate_method_path,omitempty" xml:"validate_method_path,omitempty" yaml:"validate_method_path,omitempty"`
ValidateAccessListPathClaim bool `` /* 145-byte string literal not displayed */
ValidateSourceAddress bool `json:"validate_source_address,omitempty" xml:"validate_source_address,omitempty" yaml:"validate_source_address,omitempty"`
PassClaimsWithHeaders bool `json:"pass_claims_with_headers,omitempty" xml:"pass_claims_with_headers,omitempty" yaml:"pass_claims_with_headers,omitempty"`
// contains filtered or unexported fields
}
Authorizer authorizes access to endpoints based on the presense and content of JWT token.
func (Authorizer) Authenticate ¶
func (m Authorizer) Authenticate(w http.ResponseWriter, r *http.Request, upstreamOptions map[string]interface{}) (map[string]interface{}, bool, error)
Authenticate authorizes access based on the presense and content of JWT token.
func (*Authorizer) Provision ¶
func (m *Authorizer) Provision(upstreamOptions map[string]interface{}) error
Provision provisions JWT authorization provider instances.
func (*Authorizer) Validate ¶
func (m *Authorizer) Validate() error
Validate implements caddy.Validator.
type BypassConfig ¶
type BypassConfig struct {
MatchType string `json:"match_type,omitempty" xml:"match_type,omitempty" yaml:"match_type,omitempty"`
URI string `json:"uri,omitempty" xml:"uri,omitempty" yaml:"uri,omitempty"`
// contains filtered or unexported fields
}
BypassConfig contains the entry for the authorization bypass.
func (*BypassConfig) Validate ¶
func (b *BypassConfig) Validate() error
Validate validates BypassConfig
type HeaderInjectionConfig ¶
type HeaderInjectionConfig struct {
Header string `json:"header,omitempty" xml:"header,omitempty" yaml:"header,omitempty"`
Field string `json:"field,omitempty" xml:"field,omitempty" yaml:"field,omitempty"`
}
HeaderInjectionConfig contains the entry for the authorization bypass.
func (*HeaderInjectionConfig) Validate ¶
func (c *HeaderInjectionConfig) Validate() error
Validate validates HeaderInjectionConfig
type InstanceManager ¶
type InstanceManager struct {
Members map[string]*Authorizer `json:"members,omitempty" xml:"members,omitempty" yaml:"members,omitempty"`
PrimaryInstances map[string]*Authorizer `json:"primary_instances,omitempty" xml:"primary_instances,omitempty" yaml:"primary_instances,omitempty"`
MemberCount map[string]int `json:"member_count,omitempty" xml:"member_count,omitempty" yaml:"member_count,omitempty"`
// contains filtered or unexported fields
}
InstanceManager provides access to all instances of the plugin.
var AuthManager *InstanceManager
AuthManager is the global authorization provider pool. It provides access to all instances of JWT plugin.
func NewInstanceManager ¶
func NewInstanceManager() *InstanceManager
NewInstanceManager returns a new instance of InstanceManager.
func (*InstanceManager) Register ¶
func (mgr *InstanceManager) Register(ctx context.Context, m *Authorizer) error
Register registers authorization provider instance with the pool.
func (*InstanceManager) Validate ¶
func (mgr *InstanceManager) Validate(ctx context.Context, m *Authorizer) error
Validate validates the provisioning of an Authorizer instance.
type InstanceStatus ¶
type InstanceStatus int
InstanceStatus is the state of an Instance.
const ( // Unknown is indeterminate state. Unknown InstanceStatus = iota // BootstrapPrimary is primary instance is ready for bootstrapping. BootstrapPrimary // BootstrapSecondary is non-primary instance is ready for bootstrapping. BootstrapSecondary // DelaySecondary is non-primary instance is not ready for bootstrapping. DelaySecondary // DuplicatePrimary is a dumplicate primary instance. DuplicatePrimary )