policy

package
v1.17.0 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2025 License: MIT Imports: 13 Imported by: 15

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	Applications = promauto.NewCounterVec(prometheus.CounterOpts{
		Name: "anubis_policy_results",
		Help: "The results of each policy rule",
	}, []string{"rule", "action"})
)
View Source
var (
	ErrMisconfiguration = errors.New("[unexpected] policy: administrator misconfiguration")
)

Functions

This section is empty.

Types

type Bot

type Bot struct {
	Name      string
	Action    config.Rule
	Challenge *config.ChallengeRules
	Rules     Checker
}

func (Bot) Hash

func (b Bot) Hash() string

type CheckResult added in v1.17.0

type CheckResult struct {
	Name string
	Rule config.Rule
}

func (CheckResult) LogValue added in v1.17.0

func (cr CheckResult) LogValue() slog.Value

type Checker added in v1.17.0

type Checker interface {
	Check(*http.Request) (bool, error)
	Hash() string
}

func NewHeaderExistsChecker added in v1.17.0

func NewHeaderExistsChecker(key string) Checker

func NewHeaderMatchesChecker added in v1.17.0

func NewHeaderMatchesChecker(header, rexStr string) (Checker, error)

func NewHeadersChecker added in v1.17.0

func NewHeadersChecker(headermap map[string]string) (Checker, error)

func NewPathChecker added in v1.17.0

func NewPathChecker(rexStr string) (Checker, error)

func NewRemoteAddrChecker added in v1.17.0

func NewRemoteAddrChecker(cidrs []string) (Checker, error)

func NewUserAgentChecker added in v1.17.0

func NewUserAgentChecker(rexStr string) (Checker, error)

type CheckerList added in v1.17.0

type CheckerList []Checker

func (CheckerList) Check added in v1.17.0

func (cl CheckerList) Check(r *http.Request) (bool, error)

func (CheckerList) Hash added in v1.17.0

func (cl CheckerList) Hash() string

type HeaderMatchesChecker added in v1.17.0

type HeaderMatchesChecker struct {
	// contains filtered or unexported fields
}

func (*HeaderMatchesChecker) Check added in v1.17.0

func (hmc *HeaderMatchesChecker) Check(r *http.Request) (bool, error)

func (*HeaderMatchesChecker) Hash added in v1.17.0

func (hmc *HeaderMatchesChecker) Hash() string

type ParsedConfig

type ParsedConfig struct {
	Bots              []Bot
	DNSBL             bool
	DefaultDifficulty int
	// contains filtered or unexported fields
}

func NewParsedConfig

func NewParsedConfig(orig *config.Config) *ParsedConfig

func ParseConfig

func ParseConfig(fin io.Reader, fname string, defaultDifficulty int) (*ParsedConfig, error)

type PathChecker added in v1.17.0

type PathChecker struct {
	// contains filtered or unexported fields
}

func (*PathChecker) Check added in v1.17.0

func (pc *PathChecker) Check(r *http.Request) (bool, error)

func (*PathChecker) Hash added in v1.17.0

func (pc *PathChecker) Hash() string

type RemoteAddrChecker added in v1.17.0

type RemoteAddrChecker struct {
	// contains filtered or unexported fields
}

func (*RemoteAddrChecker) Check added in v1.17.0

func (rac *RemoteAddrChecker) Check(r *http.Request) (bool, error)

func (*RemoteAddrChecker) Hash added in v1.17.0

func (rac *RemoteAddrChecker) Hash() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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