# 匹配器
# 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关键字用于StrictTransportSecurityMatchernosniff关键字用于XContentTypeOptionsMatchernoframe关键字用于XFrameOptionsMatcherxssprotection关键字用于XSSProtectionMatchernocache关键字用于CacheControlMatchersecurityheaders关键字作为hsts、nosniff、noframe、xssprotection、nocache的快捷方式csrfToken关键字用于带有DefaultCsrfTokenGenerator的CsrfTokenGeneratorMatcher(它生成一个 CSRF 令牌,并将其保存为pac4jCsrfToken请求属性和pac4jFsrfTokencookie)allowAjaxRequests关键字用于默认配置的CorsMatcher,其中Access-Control-Allow-Origin头设置为*。none关键字用于完全没有匹配器。
这些短名称在 DefaultMatchers (opens new window) 中定义为常量。你可以用同名的自己的匹配器重载它们。
← Web 上下文授权器 安全模块 →