# 匹配器

# 1)定义

pac4j 提供了一个安全模型和引擎(特定行为)。“安全过滤器”负责保护 url、请求认证和可选的授权。

在某些情况下,你可能希望绕过此“安全过滤器”,这可以使用 matcher 参数来完成,该参数通常是匹配器名称的列表。匹配器通常在安全配置中定义。

匹配器还可以用于始终在 URL 上应用一些逻辑,例如添加一些安全头。

# 2)可用匹配器

可以通过实现 Matcher (opens new window) 接口来定义匹配器。它只有一个方法:boolean matches(WebContext context) 来判断是否必须应用“安全过滤器”。

有一些匹配器可用(但你当然可以自己开发):

# 3)默认匹配器

​​​​DefaultMatchingChecker 类(由 DefaultSecurityLogic 类使用),以下关键字可自动用于以下匹配器:

  • getpostputdelete 关键字用于 HttpMethodMatcher 的相关配置(如果它们还不存在)
  • hsts 关键字用于 StrictTransportSecurityMatcher
  • nosniff 关键字用于 XContentTypeOptionsMatcher
  • noframe 关键字用于 XFrameOptionsMatcher
  • xssprotection 关键字用于 XSSProtectionMatcher
  • nocache 关键字用于 CacheControlMatcher
  • securityheaders 关键字作为 hstsnosniffnoframexssprotectionnocache 的快捷方式
  • csrfToken 关键字用于 CsrfTokenGeneratorMatcher
  • allowAjaxRequests 关键字用于默认配置的 CorsMatcher,其中 Access-Control-Allow-Origin 头设置为 *
  • none 关键字用于完全没有匹配器。

注意

由于 pac4j v4,如果未定义匹配器,DefaultMatchingChecker 将应用 securityHeaderscsrfToken 配置。

原文链接 (opens new window)