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 的匹配策略。
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 创建安全过滤器链管理器。