filter

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Aug 2, 2026 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

Package filter 提供安全过滤器链抽象,用于 enhance 框架。

该模块将过滤器功能从 security 包中分离,提供通用的过滤器链机制。 参考 Spring Security Filter 模块的设计理念。

架构设计

  • Filter: 过滤器接口,定义过滤逻辑
  • FilterChain: 过滤器链接口,管理过滤器的执行顺序
  • SecurityFilterChain: 安全过滤器链接口,匹配请求并执行安全过滤
  • SecurityFilterChainManager: 安全过滤器链管理器接口,管理多个安全过滤器链

核心功能

  • 过滤器链: 支持过滤器的顺序执行和链式调用
  • 安全过滤器链: 支持请求匹配和安全过滤逻辑
  • 过滤器管理: 支持多个安全过滤器链的管理

使用方式

创建过滤器链:

chain := filter.NewDefaultFilterChain()
chain.AddFilter(authFilter)
chain.AddFilter(authorizationFilter)
err := chain.DoFilter(ctx, request, response)

管理安全过滤器链:

manager := filter.NewSecurityFilterChainManager()
manager.AddSecurityFilterChain(filterChain)
chain := manager.GetSecurityFilterChain(request)

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Filter

type Filter interface {
	// DoFilter 执行过滤。
	DoFilter(ctx interface{}, request interface{}, response interface{}, chain FilterChain) error
	// Order 过滤器顺序,值越小优先级越高。
	Order() int
}

Filter 过滤器接口。

定义过滤逻辑,每个过滤器可以决定是否继续执行下一个过滤器。 过滤器按顺序执行,形成过滤器链。

func NewSecurityFilter

func NewSecurityFilter(manager SecurityFilterChainManager) Filter

NewSecurityFilter 创建安全过滤器。

func NewSecurityFilterWithOrder

func NewSecurityFilterWithOrder(manager SecurityFilterChainManager, order int) Filter

NewSecurityFilterWithOrder 创建带顺序的安全过滤器。

type FilterChain

type FilterChain interface {
	// DoFilter 执行过滤器链。
	DoFilter(ctx interface{}, request interface{}, response interface{}) error
	// AddFilter 添加过滤器到链末尾。
	AddFilter(filter Filter)
	// GetFilters 获取所有过滤器。
	GetFilters() []Filter
}

FilterChain 过滤器链接口。

按顺序执行多个过滤器。 每个过滤器可以决定是否继续执行下一个过滤器。

func NewDefaultFilterChain

func NewDefaultFilterChain() FilterChain

NewDefaultFilterChain 创建默认过滤器链。

func NewDefaultFilterChainWithFilters

func NewDefaultFilterChainWithFilters(filters ...Filter) FilterChain

NewDefaultFilterChainWithFilters 创建带过滤器的默认过滤器链。

type MatcherFunc

type MatcherFunc func(request interface{}) bool

MatcherFunc 请求匹配函数。

用于判断请求是否匹配特定条件,可作为 SecurityFilterChain 的匹配策略。

func (MatcherFunc) Matches

func (f MatcherFunc) Matches(request interface{}) bool

Matches 实现匹配逻辑。

type SecurityFilterChain

type SecurityFilterChain interface {
	// Matches 判断是否匹配该请求。
	Matches(request interface{}) bool
	// DoFilter 执行安全过滤器链。
	DoFilter(ctx interface{}, request interface{}, response interface{}) error
	// GetFilters 获取所有过滤器。
	GetFilters() []Filter
}

SecurityFilterChain 安全过滤器链接口。

匹配请求并执行安全过滤逻辑。 每个安全过滤器链可以匹配不同的请求类型。

func NewSimpleSecurityFilterChain

func NewSimpleSecurityFilterChain(matcher MatcherFunc, filters ...Filter) SecurityFilterChain

NewSimpleSecurityFilterChain 创建简单安全过滤器链。

type SecurityFilterChainManager

type SecurityFilterChainManager interface {
	// AddSecurityFilterChain 添加安全过滤器链。
	AddSecurityFilterChain(chain SecurityFilterChain)
	// GetSecurityFilterChain 获取匹配请求的安全过滤器链。
	GetSecurityFilterChain(request interface{}) SecurityFilterChain
	// GetSecurityFilterChains 获取所有安全过滤器链。
	GetSecurityFilterChains() []SecurityFilterChain
}

SecurityFilterChainManager 安全过滤器链管理器接口。

管理多个安全过滤器链,根据请求匹配合适的过滤器链。

func NewSecurityFilterChainManager

func NewSecurityFilterChainManager() SecurityFilterChainManager

NewSecurityFilterChainManager 创建安全过滤器链管理器。

Jump to

Keyboard shortcuts

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