# 匹配器
# 1)定义
“安全过滤器”负责保护 URL、请求认证和可选的授权。
在某些情况下,你可能希望绕过此“安全过滤器”,这可以使用 matcher 参数来完成,该参数通常是匹配器名称的列表。匹配器通常在安全配置中定义。
匹配器还可以用于始终在 URL 上应用一些逻辑,例如添加一些安全头。
# 2)可用匹配器
可以通过实现 Matcher (opens new window) 接口来定义匹配器。它只有一个方法:boolean matches(WebContext context)
来判断是否必须应用“安全过滤器”。
有一些匹配器可用(但您当然可以开发自己的匹配器):
- PathMatcher (opens new window) 允许你在安全检查中包含/排除某些路径
- HeaderMatcher (opens new window) 允许你检查给定的头是否为空或是否与正则表达式匹配
- HttpMethodMatcher (opens new window) 允许你检查 HTTP 请求的方法是否是预期的定义方法之一。
# 3)默认匹配器
大多数 pac4j 实现使用 pac4j 逻辑和匹配器,因此使用 DefaultMatchingChecker (opens new window) 组件。在这种情况下,以下匹配器通过以下简短关键字自动可用:
get
、post
、put
和delete
关键字用于HttpMethodMatcher
的相关配置(如果它们还不存在)hsts
关键字用于StrictTransportSecurityMatcher
nosniff
关键字用于XContentTypeOptionsMatcher
noframe
关键字用于XFrameOptionsMatcher
xssprotection
关键字用于XSSProtectionMatcher
nocache
关键字用于CacheControlMatcher
securityheaders
关键字作为hsts
、nosniff
、noframe
、xssprotection
、nocache
的快捷方式csrfToken
关键字用于带有DefaultCsrfTokenGenerator
的CsrfTokenGeneratorMatcher
(它生成一个 CSRF 令牌,并将其保存为pac4jCsrfToken
请求属性和pac4jFsrfToken
cookie)allowAjaxRequests
关键字用于默认配置的CorsMatcher
,其中Access-Control-Allow-Origin
头设置为*
。none
关键字用于完全没有匹配器。
这些短名称在 DefaultMatchers (opens new window) 中定义为常量。你可以用同名的自己的匹配器重载它们。
← Web 上下文授权器 安全模块 →