security

package
v0.30.113 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 25, 2024 License: MIT Imports: 1 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// System defines a singleton principal that can be used
	// to bypass security checks.
	// e.g. internal service to service interactions
	System = system{}

	// SystemSubject is a singleton Subject used to bypass security.
	SystemSubject = systemSubject{[]Principal{System}}
)

Functions

This section is empty.

Types

type Principal

type Principal interface {
	Name() string
}

Principal identifies a Subject.

type Subject

type Subject interface {
	// Authenticated returns true if this Subject is authenticated.
	Authenticated() bool

	// Principals return the identities of this Subject.
	// e.g. UserId, Username, Group or Role
	Principals() []Principal

	// Credentials return security attributes of this Subject.
	// e.g. passwords, certificates, claims
	Credentials() []any

	// AddPrincipals adds any new principals to this Subject.
	AddPrincipals(ps ...Principal)

	// AddCredentials add any new credentials to this Subject.
	AddCredentials(cs ...any)

	// RemovePrincipals remove the principals from this Subject.
	RemovePrincipals(ps ...Principal)

	// RemoveCredentials remove the credentials from this Subject.
	RemoveCredentials(cs ...any)
}

Subject is any entity that requests access to a resource. e.g. Process, Machine, Service or User

func NewSubject added in v0.30.2

func NewSubject(opts ...SubjectOption) Subject

NewSubject creates a new Subject with optional principals and credentials.

type SubjectOption added in v0.30.5

type SubjectOption func(subject Subject)

SubjectOption allows configuration of new Subject.

func WithCredentials added in v0.30.5

func WithCredentials(cs ...any) SubjectOption

WithCredentials configures a Subject with initial credentials.

func WithPrincipals added in v0.30.5

func WithPrincipals(ps ...Principal) SubjectOption

WithPrincipals configures a Subject with initial principals.

Directories

Path Synopsis
jwt

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL