Web Application Security

  • AuthenticationSuccessHandler

  • AuthenticationFailureHandler

  • BCryptPasswordEncoder

  • Cipher

  • ExceptionTranslator

  • FilterChainProxy

  • HttpServletRequest

  • HttpServletResponse

  • HttpMethod

  • InjectionPoint

  • Interceptor

  • MutableContext

  • RequestCache

  • RequestContextHolder

  • RequestMatch

  • RequestMatcher

  • RequestMatcherRegistry

  • RequestMapping

  • ServletContext

  • SessionManager

  • UserDetailsChecker

  • UserDetailsService

  • UserDetailsServiceImpl

  • ValidationException

  • Validator

  • access-decision-manager-ref

  • authentication-manager-ref

  • default-target-url

  • disable-url-rewriting

  • entry-point-ref

  • filter-all-dispatcher-types

  • jaas-api-provision

  • observation-registry-ref

  • pattern

  • realm

  • require-channel

  • servlet-api-provision

  • use-authorization-manager

  • use-expressions

  • use-secure-cookie

  • user-service-ref

<debug>

启用 Spring Security 调试基础架构。 这将提供可读的(多行)调试信息,以监视进入安全过滤器的请求。 这可能包括敏感信息,例如请求参数或标头,并且只应在开发环境中使用。

<http>

如果您在应用程序中使用了 <http>`元素,那么会创建一个名为“springSecurityFilterChain”的 `FilterChainProxy`bean,并且该元素中的配置将被用来在 `FilterChainProxy`中构建一个过滤器链。从 Spring Security 3.1 开始,可以再使用额外的 `http`元素添加额外的过滤器链。见 introductory chapter for how to set up the mapping from your `web.xml 。某些核心的过滤器始终会在过滤器链中创建,而其它过滤器将会根据其中出现的属性和子元素而添加到堆栈中。标准过滤器的顺序是固定的(在命名空间引言中见 the filter order table,移除之前框架版本中错误的常见来源,在这些版本中,用户必须在 `FilterChainProxy`bean 中明确配置过滤器链。当然,如果您想要完全控制配置,您仍然可以这样做。

所有需要引用 AuthenticationManager的过滤器都会自动注入由命名空间配置创建的内部实例。

每个 <http> 命名空间块总是创建 SecurityContextPersistenceFilter, ExceptionTranslationFilterFilterSecurityInterceptor。这些是固定的,不能被替代品取代。

<http> Attributes

<http> 元素上的属性控制核心过滤器上的一些属性。

  • *use-authorization-manager*使用 AuthorizationManager API 而不是 SecurityMetadataSource(默认为 true)

  • *access-decision-manager-ref*使用此 AuthorizationManager 而不是从 <intercept-url> 元素派生出来的 AuthorizationManager

  • *access-decision-manager-ref*可选项属性,指定用于授权 HTTP 请求的 `AccessDecisionManager`实现的 ID。默认情况下,使用 `AffirmativeBased`实现与 `RoleVoter`和 `AuthenticatedVoter`一起使用。

  • *authentication-manager-ref*对用于由此 http 元素创建的 `FilterChain`所使用的 `AuthenticationManager`的引用。

  • *observation-registry-ref*用于 `FilterChain`和相关组件的 `ObservationRegistry`的引用。

  • *auto-config*自动注册一个登录表单、BASIC 认证和注销服务。如果将其设置为“true”,则添加所有这些功能(尽管仍然可以通过提供相应的元素自定义每个功能的配置)。如果未指定,则默认为“false”。不建议使用此属性。请改用显式配置元素以避免混淆。

  • *create-session*控制 Spring Security 类创建 HTTP 会话的热切程度。选项包括:

    • always - 若不存在会话,Spring Security 会主动创建一个会话。

    • ifRequired - 只有在需要时,Spring Security 才创建会话(默认值)。

    • never - Spring Security 从不创建会话,但会使用应用程序创建的会话(如果有的)。

    • stateless - Spring Security 不会创建会话,并忽略会话以获取 Spring Authentication

  • *disable-url-rewriting*阻止将会话 ID 附加到应用程序中的 URL。如果此属性设置为 true,则客户端必须使用 cookie。默认值为 true

  • *entry-point-ref*通常,使用的 `AuthenticationEntryPoint`会根据已配置的身份验证机制进行设置。此属性允许通过定义一个自定义 `AuthenticationEntryPoint`bean 来覆盖此行为,该 bean 将启动身份验证过程。

  • *jaas-api-provision*如果可用,则以从 JaasAuthenticationToken`获取的 `Subject`身份运行请求,这通过向堆栈添加 `JaasApiIntegrationFilter`bean 来实现。默认为 `false

  • *name*bean 标识符,用于在上下文中其他位置引用该 bean。

  • *once-per-request*对应于 FilterSecurityInterceptor`的 `observeOncePerRequest`属性。默认为 `false

  • *filter-all-dispatcher-types*对应于 AuthorizationFilter`的 `shouldFilterAllDispatcherTypes`属性。当 `use-authorization-manager=false`时不起作用。默认为 `true

  • *pattern*为 http元素定义一个模式,控制将通过它定义的过滤器列表过滤哪些请求。解释取决于配置的 request-matcher。如果未定义模式,则所有请求都将匹配,因此应首先声明最具体的模式。

  • *realm*设置用于基本认证的领域名称(如果已启用)。对应于 `BasicAuthenticationEntryPoint`上的 `realmName`属性。

  • *request-matcher*定义 FilterChainProxy`中使用的 `RequestMatcher`策略和 `intercept-url`创建的 bean,以匹配传入的请求。目前的选项有 `mvcantregex`和 `ciRegex,分别用于 Spring MVC、Ant、正则表达式和小写正则表达式。对于每个 intercept-url元素使用其 patternmethodservlet-path属性创建一个单独的实例。Ant 路径使用 AntPathRequestMatcher`匹配,正则表达式使用 `RegexRequestMatcher`匹配,对于 Spring MVC 路径匹配,使用 `MvcRequestMatcher。有关确切执行匹配方式的更多详细信息,请参阅这些类的 Javadoc。如果有 Spring MVC 存在于类路径中,MVC 是默认策略,如果没有,则使用 Ant 路径。

  • *request-matcher-ref*对实现 RequestMatcher`的 bean 的引用,该 bean 将确定是否应使用此 `FilterChain。这是一种更为强大的 pattern替代方案。

  • *security*将请求模式映射到一个空的筛选器链,通过设置这个属性为 none.不会应用任何安全设置,Spring Security 的所有功能都不可用。

  • *security-context-repository-ref*允许将自定义 SecurityContextHolderStrategy 引入 SecurityContextPersistenceFilter, SecurityContextHolderFilter, BasicAuthenticationFilter, UsernamePasswordAuthenticationFilter, ExceptionTranslationFilter, LogoutFilter 和其他。

  • *security-context-explicit-save*如果为真,使用 SecurityContextHolderFilter 代替 SecurityContextPersistenceFilter. 需要显式保存

  • *security-context-repository-ref*允许将自定义 SecurityContextRepository 引入 SecurityContextPersistenceFilter.

  • *servlet-api-provision*提供 HttpServletRequest 安全方法(如 isUserInRole()getPrincipal())的版本,这些方法通过将 SecurityContextHolderAwareRequestFilter bean 添加到堆栈中实现。默认值为 true.

<access-denied-handler>

该元素允许您为 `ExceptionTranslationFilter`所使用的默认 `AccessDeniedHandler`设置 `errorPage`属性,使用 error-page属性,或使用 ref属性来提供您自己的实现。这在 ExceptionTranslationFilter的章节中作了更详细的讨论。

Parent Elements of <access-denied-handler>

<access-denied-handler> Attributes

  • *error-page*已验证用户的访问被拒绝的页面,如果他们请求他们无权访问的页面,将会被重定向到该页面。

  • *ref*定义对类型为 AccessDeniedHandler 的 Spring bean 的引用。

<cors>

此元素允许配置 CorsFilter。 如果未指定 CorsFilterCorsConfigurationSource 且 Spring MVC 在类路径中,则将 HandlerMappingIntrospector 用作 CorsConfigurationSource

<cors> Attributes

<cors> 元素上的属性控制 headers 元素。

  • *ref*可选属性,用于指定 CorsFilter 的 Bean 名称。

  • *cors-configuration-source-ref*可选属性,用于指定要注入到 XML 命名空间创建的 CorsFilter 中的 CorsConfigurationSource 的 Bean 名称。

Parent Elements of <cors>

<headers>

该元素用于配置附加的(安全性)标头以便随应答送出。它为几个标头启用了轻松配置,并且还允许通过 header元素设置自定义标头。可以在参考的 Security Headers章节中找到附加信息。

  • Cache-Control, Pragma, 和 Expires - 可以使用 cache-control 元素设置。这确保浏览器不会缓存您的安全页面。

  • Strict-Transport-Security - 可以使用 hsts 元素设置。这将确保浏览器会自动请求 HTTPS 用于未来的请求。

  • X-Frame-Options - 可以使用 frame-options 元素设置: X-Frame-Options 头部可以用于防止点击劫持攻击。

  • X-XSS-Protection - 可以使用 xss-protection 元素设置: X-XSS-Protection 头部可由浏览器用于进行基本控制。

  • X-Content-Type-Options - 可以使用 content-type-options 元素设置: X-Content-Type-Options 头部可以防止 Internet Explorer 将响应 MIME 嗅探至距离已声明内容类型。这也适用于 Google Chrome,在下载扩展时。

  • Public-Key-PinningPublic-Key-Pinning-Report-Only - 可以使用 hpkp 元素设置:这使 HTTPS 网站可以抵御使用错误签发或其他欺诈证书进行冒充的攻击者。

  • Content-Security-PolicyContent-Security-Policy-Report-Only - 可以使用 content-security-policy 元素设置: Content Security Policy (CSP) 是 Web 应用程序可以利用来减轻内容注入漏洞(例如跨站点脚本 (XSS))的机制。

  • Referrer-Policy - 可以使用 referrer-policy 元素设置: Referrer-Policy 是 Web 应用程序可以利用来管理引用字段的机制,该字段包含用户所在的上一页。

  • Feature-Policy - 可以使用 feature-policy 元素设置: Feature-Policy 是允许 Web 开发人员选择性地启用、禁用和修改浏览器中某些 API 和 Web 功能的行为的一种机制。

  • Cross-Origin-Opener-Policy - 可以使用 cross-origin-opener-policy 元素设置: Cross-Origin-Opener-Policy 允许您确保顶级文档不与跨域文档共享浏览上下文组。

  • Cross-Origin-Embedder-Policy - 可以使用 cross-origin-embedder-policy 元素设置: Cross-Origin-Embedder-Policy 是阻止文档加载任何未明确授予文档权限的跨域资源的机制。

  • Cross-Origin-Resource-Policy - 可以使用 cross-origin-resource-policy 元素设置: Cross-Origin-Resource-Policy 传达了让浏览器阻止针对给定资源的 no-cors 跨域/跨站点请求的愿望。

<headers> Attributes

<headers> 元素上的属性控制 headers 元素。

  • *defaults-disabled*可选属性,用于指定禁用 Spring Security 的默认 HTTP 响应标头。默认值为假(包括默认标头)。

  • *disabled*可选属性,用于指定禁用 Spring Security 的 HTTP 响应标头。默认值为假(标头已启用)。

Parent Elements of <headers>

<cache-control>

添加 Cache-Control, PragmaExpires headers 以确保浏览器不会缓存您的安全页面。

<cache-control> Attributes

  • *disabled*指定是否应禁用 Cache Control。默认值为假。

Parent Elements of <cache-control>

<hsts>

启用后,将向任何安全请求的响应中添加 Strict-Transport-Security 头部。这允许服务器指示浏览器在将来的请求中自动使用 HTTPS。

<hsts> Attributes

  • *disabled*指定是否应禁用 Strict-Transport-Security。默认值为假。

  • *include-sub-domains*指定是否应包括子域。默认值为真。

  • *max-age-seconds*指定主机应被视为已知 HSTS 主机的最长时间。默认一年。

  • *request-matcher-ref*用于确定是否应设置头的 RequestMatcher 实例。默认值为 HttpServletRequest.isSecure() 为 true。

  • *preload*指定是否应包含预加载。默认值为 false。

Parent Elements of <hsts>

<hpkp>

启用后,将向任何安全请求的响应中添加 Public Key Pinning Extension for HTTP 头部。这允许 HTTPS 网站抵御攻击者使用错误签发或其他欺诈性证书进行的假冒。

<hpkp> Attributes

  • *disabled*指定是否应禁用 HTTP 公钥固定 (HPKP)。默认值为 true。

  • *include-sub-domains*指定是否应包含子域。默认值为 false。

  • *max-age-seconds*设置 Public-Key-Pins 头的 max-age 指令的值。默认 60 天。

  • *report-only*指定浏览器是否应仅报告 pin 验证失败。默认值为 true。

  • *report-uri*指定浏览器应向其报告 pin 验证失败的 URI。

Parent Elements of <hpkp>

<pins>

pin 列表

Child Elements of <pins>

<pin>

使用 base64 编码的 SPKI 指纹作为值和加密散列算法作为属性指定 pin

<pin> Attributes

  • *algorithm*加密哈希算法。默认值为 SHA256。

Parent Elements of <pin>

<content-security-policy>

启用后,将向响应中添加 Content Security Policy (CSP) 头部。CSP 是一种 Web 应用程序可以利用的机制,以减轻内容注入漏洞,例如跨站点脚本 (XSS)。

<content-security-policy> Attributes

  • *policy-directives*Content-Security-Policy 头的安全策略指令,如果 report-only 设置为 true,则使用 Content-Security-Policy-Report-Only 头。

  • *report-only*设置为 true,以启用 Content-Security-Policy-Report-Only 头仅报告策略违规行为。默认为 false。

Parent Elements of <content-security-policy>

<referrer-policy>

如果启用,则向响应添加 Referrer Policy标头。

<referrer-policy> Attributes

  • *policy*Referrer-Policy 标头的策略。默认值“no-referrer”。

Parent Elements of <referrer-policy>

<feature-policy>

如果启用,则向响应添加 Feature Policy标头。

<feature-policy> Attributes

  • *policy-directives*Feature-Policy 标头的安全策略指令。

Parent Elements of <feature-policy>

<frame-options>

如果启用,则向响应添加 X-Frame-Options header,这允许更新的浏览器执行一些安全性检查和防止 clickjacking攻击。

<frame-options> Attributes

  • *disabled*如果禁用,将不包含 X-Frame-Options 头。默认值为 false。

  • policy

    • `DENY`此页面无法在框架中显示,无论尝试执行此操作的网站如何。当指定 frame-options-policy 时,这是默认设置。

    • `SAMEORIGIN`此页面只能显示在与页面本身同源的框架中

换句话说,如果您指定 DENY,不仅从其他网站加载页面尝试在框架中加载失败,而且从同一个网站加载时也会失败。另一方面,如果您指定 SAMEORIGIN,只要网站在框架中包含该页面并且与提供该页面的网站相同,您仍然可以在框架中使用该页面。

Parent Elements of <frame-options>

<permissions-policy>

向响应添加 Permissions-Policy header

<permissions-policy> Attributes

  • *policy*要为 `Permissions-Policy`头写入的策略值

Parent Elements of <permissions-policy>

<xss-protection>

向响应添加 X-XSS-Protection header来协助防御 reflected / Type-1 Cross-Site Scripting (XSS)攻击。这绝不是对 XSS 攻击的全面保护!

<xss-protection> Attributes

Parent Elements of <xss-protection>

<content-type-options>

向响应添加名为 nosniff 的 X-Content-Type-Options 标头。该 disables MIME-sniffing用于 IE8+ 和 Chrome 扩展。

<content-type-options> Attributes

  • *disabled*指定是否应禁用内容类型选项。默认值为 false。

Parent Elements of <content-type-options>

<cross-origin-embedder-policy>

如果启用,则向响应添加 Cross-Origin-Embedder-Policy标头。

<cross-origin-embedder-policy> Attributes
  • policy`Cross-Origin-Embedder-Policy`头的策略。

Parent Elements of <cross-origin-embedder-policy>

<cross-origin-opener-policy>

如果启用,则向响应添加 Cross-Origin-Opener-Policy标头。

<cross-origin-opener-policy> Attributes
  • policy`Cross-Origin-Opener-Policy`头的策略。

Parent Elements of <cross-origin-opener-policy>

<cross-origin-resource-policy>

如果启用,则向响应添加 Cross-Origin-Resource-Policy标头。

<cross-origin-resource-policy> Attributes
  • policy`Cross-Origin-Resource-Policy`头的策略。

Parent Elements of <cross-origin-resource-policy>

<header>

向响应添加其他标头,需要指定名称和值。

<header-attributes> Attributes

  • *header-name*头的 name

  • *value*要添加的头的 value

  • *ref*对 `HeaderWriter`接口的自定义实现的引用。

Parent Elements of <header>

<anonymous>

AnonymousAuthenticationFilter 添加到堆栈和 AnonymousAuthenticationProvider。如果您正在使用 IS_AUTHENTICATED_ANONYMOUSLY 属性,则需要此功能。

Parent Elements of <anonymous>

<anonymous> Attributes

  • *enabled*使用默认命名空间设置时,将自动启用匿名“身份验证”功能。您可以使用此属性禁用它。

  • *granted-authority*应分配给匿名请求的授予权限。通常这用于为匿名请求分配特定角色,随后可在授权决策中使用。如果未设置,则默认为 ROLE_ANONYMOUS.

  • *key*提供程序和过滤器之间共享的密钥。通常不需要设置此选项。如果未设置,则默认为安全随机生成的值。这意味着设置此值可以改善在使用匿名功能时的启动时间,因为生成安全随机值可能需要一段时间。

  • *username*应分配给匿名请求的用户名。这允许识别担任者,这对于日志记录和审核很重要。如果未设置,则默认为 anonymousUser.

<csrf>

该元素将会向应用程序添加 Cross Site Request Forger (CSRF)保护。它还更新默认的 RequestCache,以便在身份验证成功后仅回复“GET”请求。可以在参考的 Cross Site Request Forgery (CSRF)章节中找到附加信息。

Parent Elements of <csrf>

<csrf> Attributes

  • *disabled*指定禁用 Spring 安全性的 CSRF 保护的可选特性。默认值为 false(启用 CSRF 保护)。强烈建议启用 CSRF 保护。

  • *token-repository-ref*要使用的 CsrfTokenRepository。默认值为 HttpSessionCsrfTokenRepository.

  • *request-handler-ref*要使用的可选 CsrfTokenRequestHandler。默认值为 CsrfTokenRequestAttributeHandler.

  • *request-matcher-ref*将用于确定是否应应用 CSRF 的 RequestMatcher 实例。除“GET”、“TRACE”、“HEAD”、“OPTIONS”外,默认值为任何 HTTP 方法。

<custom-filter>

该元素用于将过滤器添加到过滤器链中。它不创建任何附加的 bean,但它用于选择应用程序上下文中已经定义的类型为 `jakarta.servlet.Filter`的 bean,并且将其添加到 Spring Security 维护的过滤器链中的特定位置。可以在 namespace chapter中找到全部详细信息。

Parent Elements of <custom-filter>

<custom-filter> Attributes

  • *after*自定义过滤器应在链中插入到其正后的过滤器。此功能仅适用于高级用户,他们希望将自己的过滤器混入安全过滤器链并且具备一些标准 Spring 安全性过滤器的知识。过滤器名称映射到特定的 Spring 安全性实现过滤器。

  • *before*自定义过滤器应在链中插入到其正前的过滤器

  • *position*应在链中插入自定义过滤器的明确位置。在替换标准过滤器时使用。

  • *ref*定义对实现 `Filter`的 Spring bean 的引用。

<expression-handler>

如果启用了基于表达式的访问控制,将使用定义的 SecurityExpressionHandler 实例。如果没有提供,将使用默认实现(不具有 ACL 支持)。

<expression-handler> Attributes

  • *ref*定义对实现 `SecurityExpressionHandler`的 Spring bean 的引用。

<form-login>

用于向过滤器堆栈添加 UsernamePasswordAuthenticationFilter,并向应用程序上下文添加 LoginUrlAuthenticationEntryPoint 以按需提供身份验证。这将始终优先于其他由命名空间创建的入口点。如果没有提供属性,则将在 URL“/login”上自动生成登录页面,此功能只是为了方便,不适用于生产(已经选择了一种视图技术,并且可以用于呈现自定义登录页面)。DefaultLoginPageGeneratingFilter 类负责呈现登录页面,并且将在需要时提供普通表单登录和/或 OIDC 的登录表单。可以使用 <<`<form-login>` 属性,nsa-form-login-attributes>> 自定义行为。

Parent Elements of <form-login>

<form-login> Attributes

  • *always-use-default-target*如果设置为 true,则无论用户如何到达登录页面,用户始终将从 default-target-url给定的值开始。映射到 UsernamePasswordAuthenticationFilter`的 `alwaysUseDefaultTargetUrl`属性。默认值为 `false.

  • *authentication-details-source-ref*对 `AuthenticationDetailsSource`的引用,其中认证过滤器将使用该引用

  • *authentication-failure-handler-ref*可用作 authentication-failure-url的替代方法,让你在认证失败后可以完全控制导航流程。该值应该是应用程序上下文中 `AuthenticationFailureHandler`bean 的名称。

  • *authentication-failure-url*映射到 UsernamePasswordAuthenticationFilter`的 `authenticationFailureUrl`属性。定义浏览器在登录失败时将被重定向到的 URL。默认为 `/login?error,它将由自动登录页面生成器自动处理,使用错误消息重新渲染登录页面。

  • *authentication-success-handler-ref*它可以用作 default-target-urlalways-use-default-target的替代方法,让你在认证成功后可以完全控制导航流程。该值应该是应用程序上下文中 `AuthenticationSuccessHandler`bean 的名称。默认情况下,将使用 `SavedRequestAwareAuthenticationSuccessHandler`并使用 default-target-url 注入它的实现。

  • *default-target-url*映射到 `UsernamePasswordAuthenticationFilter`的 `defaultTargetUrl`属性。如果未设置,则默认值为“/”(应用程序根目录)。用户将在此登录后被带到此 URL,前提是他们在尝试访问受保护资源时不会被要求登录,此时他们将被带到最初请求的 URL。

  • *login-page*用于呈现登录页面的 URL。映射到 `LoginUrlAuthenticationEntryPoint`的 `loginFormUrl`属性。默认为“/login”。

  • *login-processing-url*映射到 `UsernamePasswordAuthenticationFilter``filterProcessesUrl`属性。默认值为“/login”。

  • *password-parameter*包含密码的请求参数的名称。默认为“password”。

  • *username-parameter*包含用户名的请求参数的名称。默认为“username”。

  • *authentication-success-forward-url*映射 `ForwardAuthenticationSuccessHandler`到 `UsernamePasswordAuthenticationFilter`的 `authenticationSuccessHandler`属性。

  • *authentication-failure-forward-url*映射 `ForwardAuthenticationFailureHandler`到 `UsernamePasswordAuthenticationFilter`的 `authenticationFailureHandler`属性。

<oauth2-login>

OAuth 2.0 Login功能使用 OAuth 2.0 和/或 OpenID Connect 1.0 提供者来配置身份验证支持。

Parent Elements of <oauth2-login>

<oauth2-login> Attributes

  • client-registration-repository-ref Reference to the ClientRegistrationRepository.

  • authorized-client-repository-ref Reference to the OAuth2AuthorizedClientRepository.

  • authorized-client-service-ref Reference to the OAuth2AuthorizedClientService.

  • authorization-request-repository-ref Reference to the AuthorizationRequestRepository.

  • authorization-request-resolver-ref Reference to the OAuth2AuthorizationRequestResolver.

  • *authorization-redirect-strategy-ref*对授权 `RedirectStrategy`的引用。

  • access-token-response-client-ref Reference to the OAuth2AccessTokenResponseClient.

  • user-authorities-mapper-ref Reference to the GrantedAuthoritiesMapper.

  • user-service-ref Reference to the OAuth2UserService.

  • *oidc-user-service-ref*对 OpenID Connect `OAuth2UserService`的引用。

  • *login-processing-url*过滤器处理认证请求的 URI。

  • *login-page*用于向用户发送登录请求的 URI。

  • authentication-success-handler-ref Reference to the AuthenticationSuccessHandler.

  • authentication-failure-handler-ref Reference to the AuthenticationFailureHandler.

  • jwt-decoder-factory-ref`OidcAuthorizationCodeAuthenticationProvider`使用的 `JwtDecoderFactory`的引用。

<oauth2-client>

配置 OAuth 2.0 Client的支持。

Parent Elements of <oauth2-client>

<oauth2-client> Attributes

  • client-registration-repository-ref Reference to the ClientRegistrationRepository.

  • authorized-client-repository-ref Reference to the OAuth2AuthorizedClientRepository.

  • authorized-client-service-ref Reference to the OAuth2AuthorizedClientService.

Child Elements of <oauth2-client>

<authorization-code-grant>

Parent Elements of <authorization-code-grant>

<authorization-code-grant> Attributes

  • authorization-request-repository-ref Reference to the AuthorizationRequestRepository.

  • *authorization-redirect-strategy-ref*对授权 `RedirectStrategy`的引用。

  • authorization-request-resolver-ref Reference to the OAuth2AuthorizationRequestResolver.

  • access-token-response-client-ref Reference to the OAuth2AccessTokenResponseClient.

<client-registrations>

向 OAuth 2.0 或 OpenID Connect 1.0 提供者注册 (ClientRegistration) 的客户端的容器元素。

Child Elements of <client-registrations>

<client-registration>

代表一个已使用 OAuth 2.0 或 OpenID Connect 1.0 供应商注册的客户端。

Parent Elements of <client-registration>

<client-registration> Attributes

  • *registration-id*唯一标识 `ClientRegistration`的 ID。

  • client-id The client identifier.

  • client-secret The client secret.

  • client-authentication-method*用于使用提供程序对客户端进行身份认证的方法。支持的值为 *client_secret_basic, client_secret_post, private_key_jwt, client_secret_jwt*和 *none (public clients)

  • *authorization-grant-type*OAuth 2.0 授权框架定义了四种 Authorization Grant类型。支持的值为 authorization_code, client_credentials, password,以及扩展授权类型 urn:ietf:params:oauth:grant-type:jwt-bearer

  • *redirect-uri*客户端的注册重定向 URI,_Authorization Server_在最终用户经过身份验证并授权了对客户端的访问权限后将最终用户用户代理重定向到该 URI。

  • *scope*客户端在授权请求流程期间请求的范围 (scope),例如 openid、email 或 profile。

  • *client-name*用于客户端的描述性名称。该名称可在特定情况下使用,例如在自动生成的登录页面中显示客户端名称时。

  • *provider-id*对关联提供程序的引用。可以引用 `&lt;provider&gt;`元素或使用其中一个通用提供程序 (google、github、facebook、okta)。

<provider>

OAuth 2.0 或 OpenID Connect 1.0 供应商的配置信息。

Parent Elements of <provider>

<provider> Attributes

  • *provider-id*唯一标识提供程序的 ID。

  • *authorization-uri*授权服务器的授权端点 URI。

  • *token-uri*授权服务器的令牌端点 URI。

  • *user-info-uri*用于访问经过身份验证的最终用户声明/属性的用户信息端点 URI。

  • user-info-authentication-method*在向用户信息端点发送访问令牌时使用的身份验证方法。支持的值为 *header, form*和 *query

  • *user-info-user-name-attribute*用户信息响应中返回的属性名称,该名称引用最终用户的名称或标识符。

<oauth2-resource-server>

在配置中添加 BearerTokenAuthenticationFilterBearerTokenAuthenticationEntryPointBearerTokenAccessDeniedHandler。此外,还必须指定 <jwt><opaque-token>

Parents Elements of <oauth2-resource-server>

Child Elements of <oauth2-resource-server>

<oauth2-resource-server> Attributes

  • *authentication-manager-resolver-ref*对将在请求时解析 `AuthenticationManager`的 `AuthenticationManagerResolver`的引用。

  • *bearer-token-resolver-ref*对将从请求中检索出示令牌的 `BearerTokenResolver`的引用。

  • *entry-point-ref*对将处理未经授权请求的 `AuthenticationEntryPoint`的引用。

<jwt>

表示将授权 JWT 的 OAuth 2.0 资源服务器

Parent Elements of <jwt>

<jwt> Attributes

  • *jwt-authentication-converter-ref*对 `Converter&lt;Jwt, AbstractAuthenticationToken&gt;`的引用。

  • *jwt-decoder-ref*对 JwtDecoder`的引用。这是一个更大的组件,它将覆盖 `jwk-set-uri

  • *jwk-set-uri*用于从 OAuth 2.0 授权服务器加载签名验证密钥的 JWK 集 Uri。

<opaque-token>

表示将授权不透明令牌的 OAuth 2.0 资源服务器

Parent Elements of <opaque-token>

<opaque-token> Attributes

  • *introspector-ref*对 OpaqueTokenIntrospector`的引用。这是一个更大的组件,它将覆盖 `introspection-uri, client-id`和 `client-secret

  • *introspection-uri*用于检查不透明令牌详细信息的内省 Uri。应附带 client-id`和 `client-secret

  • *client-id*用于对提供的 `introspection-uri`进行客户端身份验证的客户端 Id。

  • *client-secret*用于对提供的 `introspection-uri`进行客户端身份验证的客户端机密。

  • *authentication-converter-ref*对 `OpaqueTokenAuthenticationConverter`的引用。负责将成功的内省结果转换成 `Authentication`实例。

<relying-party-registrations>

向 SAML 2.0 身份提供者注册 (ClientRegistration) 的依赖方的容器元素。

Child Elements of <relying-party-registrations>

<relying-party-registration>

表示向 SAML 2.0 标识提供者注册的依赖方

Parent Elements of <relying-party-registration>

<relying-party-registration> Attributes

  • *registration-id*唯一标识 `RelyingPartyRegistration`的 ID。

  • *metadata-location*断言方元数据位置。等同于 `&lt;SPSSODescriptor&gt;`中依赖方 `&lt;AssertionConsumerService Location="&#8230;&#8203;"/&gt;`中的值。

  • client-id The relying party’s EntityID.

  • assertion-consumer-service-location*AssertionConsumerService 位置。等同于 `&lt;SPSSODescriptor&gt;`中依赖方 `&lt;SPSSODescriptor&gt;`中的 `&lt;AssertionConsumerService Binding="&#8230;&#8203;"/&gt;`中的值。受支持的值为 *POST*和 *REDIRECT

  • assertion-consumer-service-binding*AssertionConsumerService 绑定。等同于 `&lt;SPSSODescriptor&gt;`中依赖方 `&lt;AssertionConsumerService Binding="&#8230;&#8203;"/&gt;`中的值。受支持的值为 *POST*和 *REDIRECT

  • *single-logout-service-location*SingleLogoutService 位置。等同于依赖方 <SPSSODescriptor> 中 <SingleLogoutService Location="…​"/> 中的值。

  • *single-logout-service-response-location*SingleLogoutService ResponseLocation。等同于依赖方 <SPSSODescriptor> 中 <SingleLogoutService ResponseLocation="…​"/> 中的值。

  • single-logout-service-binding*SingleLogoutService 绑定。等同于依赖方 <SPSSODescriptor> 中 <SingleLogoutService Binding="…​"/> 中的值。受支持的值为 *POST*和 *REDIRECT

  • *asserting-party-id*对相关断言方的引用。必须引用 `&lt;asserting-party&gt;`元素。

Child Elements of <relying-party-registration>

<decryption-credential>

与依赖方关联的解密凭证

Parent Elements of <decryption-credential>

<decryption-credential> Attributes

  • *certificate-location*获取证书的位置

  • *private-key-location*获取依赖方私钥的位置

<signing-credential>

与依赖方关联的签名凭证

Parent Elements of <verification-credential>

<verification-credential> Attributes

  • *certificate-location*获取此证书的位置

  • *private-key-location*获取依赖方私钥的位置

<asserting-party>

SAML 2.0 断言方的配置信息。

Parent Elements of <asserting-party>

<asserting-party> Attributes

  • *asserting-party-id*唯一标识断言方的 ID。

  • *entity-id*断言方的 EntityID

  • want-authn-requests-signed`WantAuthnRequestsSigned`设置,指示断言方更希望依赖方在发送 `AuthnRequest`之前对其进行签名。

  • single-sign-on-service-binding SingleSignOnService绑定。受支持的值为 POST*和 *REDIRECT

  • *signing-algorithms*此断言方的 `org.opensaml.saml.ext.saml2alg.SigningMethod`算法列表,按偏好顺序排列。

  • *single-logout-service-location*SingleLogoutService 位置。等同于断言方 <IDPSSODescriptor> 中 <SingleLogoutService Location="…​"/> 中的值。

  • *single-logout-service-response-location*SingleLogoutService ResponseLocation。等同于断言方 <IDPSSODescriptor> 中 <SingleLogoutService ResponseLocation="…​"/> 中的值。

  • single-logout-service-binding*SingleLogoutService 绑定。等同于断言方 <IDPSSODescriptor> 中 <SingleLogoutService Binding="…​"/> 中的值。受支持的值为 *POST*和 *REDIRECT

Child Elements of <asserting-party>

<encryption-credential>

与断言方关联的加密凭证

Parent Elements of <encryption-credential>

<encryption-credential> Attributes

  • *certificate-location*获取证书的位置

  • *private-key-location*获取依赖方私钥的位置

<verification-credential>

与断言方关联的验证凭证

Parent Elements of <verification-credential>

<verification-credential> Attributes

  • *certificate-location*获取此证书的位置

  • *private-key-location*获取依赖方私钥的位置

<http-basic>

在配置中添加 BasicAuthenticationFilterBasicAuthenticationEntryPoint。仅在未启用基于表单登录的情况下,后者才会用作配置入口点。

Parent Elements of <http-basic>

<http-basic> Attributes

  • *authentication-details-source-ref*对 `AuthenticationDetailsSource`的引用,其中认证过滤器将使用该引用

  • *entry-point-ref*设置由 BasicAuthenticationFilter`使用的 `AuthenticationEntryPoint

<http-firewall> Element

这是一个顶级元素,可用于将自定义 HttpFirewall 实现注入到命名空间创建的 FilterChainProxy 中。默认实现应适用于大多数应用程序。

<http-firewall> Attributes

  • *ref*定义对实现 `HttpFirewall`的 Spring bean 的引用。

<intercept-url>

此元素用于定义应用程序感兴趣的 URL 模式集,并配置处理这些 URL 的方式。它用于构建 FilterSecurityInterceptor 使用的 FilterInvocationSecurityMetadataSource。如果需要使用 HTTPS 访问特定 URL,它还负责配置 ChannelProcessingFilter。在将指定模式与传入请求进行匹配时,匹配按照声明元素的顺序进行。因此,最具体的模式应排在前面,最普通的模式应排在后面。

Parent Elements of <intercept-url>

<intercept-url> Attributes

  • *access*列出将存储在 `FilterInvocationSecurityMetadataSource`中的访问属性,以用于定义的 URL 模式/方法组合。这应为安全配置属性(如角色名称)的逗号分隔列表。

  • *method*将与模式和 Servlet 路径(可选)结合使用以匹配传入请求的 HTTP 方法。如果省略,则任何方法都将匹配。如果使用和不使用某个方法指定了相同的模式,则特定于方法的匹配将优先。

  • *pattern*定义 URL 路径的模式。内容将取决于包含 http 元素的 `request-matcher`属性,因此如果 Spring MVC 在类路径中,则会默认为 MVC 匹配器。

  • *request-matcher-ref*对 RequestMatcher`的引用,将用于确定是否使用此 `&lt;intercept-url&gt;

  • *requires-channel*可以是“http”或“https”,具体取决于是否应该分别通过 HTTP 或 HTTPS 访问特定的 URL 模式。或者,当没有首选项时,可以使用值“any”。如果此属性出现在任何 &lt;intercept-url&gt;`元素上,则会向过滤器堆栈中添加 `ChannelProcessingFilter,并将其其他依赖项添加到应用程序上下文中。

如果添加了 <port-mappings> 配置,SecureChannelProcessorInsecureChannelProcessor Bean 将使用该配置来确定用于重定向到 HTTP/HTTPS 的端口。

此属性对于 filter-security-metadata-source 无效。

  • *servlet-path*与模式和 HTTP 方法结合使用以匹配传入请求的 servlet 路径。此属性仅适用于 request-matcher为“mvc”时。另外,仅在以下 2 种使用情况下需要使用该值:1)在 ServletContext`中注册了 2 个或更多 `HttpServlet,其映射以“/”开头且不同;2)模式以已注册 `HttpServlet`路径的相同值开头,排除默认(根目录)`HttpServlet‘/’`。

此属性对于 filter-security-metadata-source 无效。

<jee>

在过滤器链中添加 J2eePreAuthenticatedProcessingFilter,以提供与容器身份验证的集成。

Parent Elements of <jee>

<jee> Attributes

  • *mappable-roles*传入 HttpServletRequest 中查找的一组逗号分隔角色。

  • *user-service-ref*对用户服务(或 UserDetailsService bean)Id 的引用

<logout>

在过滤器堆栈中添加 LogoutFilter。它使用 SecurityContextLogoutHandler 进行配置。

Parent Elements of <logout>

<logout> Attributes

  • *delete-cookies*用户注销时应删除的 cookie 名称的逗号分隔列表。

  • *invalidate-session*映射到 SecurityContextLogoutHandler`的 `invalidateHttpSession。默认为“true”,因此会话将在注销时失效。

  • *logout-success-url*用户注销后带到的目标 URL。默认为 <form-login-login-page>/?logout(即 /login?logout)设置此属性将向 SessionManagementFilter 注入 SimpleRedirectInvalidSessionStrategy,该策略使用属性值进行配置。提交无效会话 ID 时,将调用该策略,重定向到配置的 URL。

  • *logout-url*将导致注销的 URL(即过滤器将处理的 URL)。默认为“/logout”。

  • *success-handler-ref*可用于提供 `LogoutSuccessHandler`的实例,在注销后将调用该实例以控制导航。

<saml2-login>

SAML 2.0 Login 特性将通过 SAML 2.0 服务提供者配置验证支持。

Parent Elements of <saml2-login>

<saml2-login> Attributes

  • relying-party-registration-repository-ref Reference to the RelyingPartyRegistrationRepository.

  • authentication-request-repository-ref Reference to the Saml2AuthenticationRequestRepository.

  • authentication-request-context-resolver-ref Reference to the Saml2AuthenticationRequestResolver.

  • authentication-converter-ref Reference to the AuthenticationConverter.

  • *login-processing-url*过滤器处理认证请求的 URI。

  • *login-page*用于向用户发送登录请求的 URI。

  • authentication-success-handler-ref Reference to the AuthenticationSuccessHandler.

  • authentication-failure-handler-ref Reference to the AuthenticationFailureHandler.

  • authentication-manager-ref Reference to the AuthenticationManager.

<saml2-logout>

SAML 2.0 Single Logout 特性将配置支持 RP 和 AP 发起的 SAML 2.0 单点注销。

Parent Elements of <saml2-logout>

<saml2-logout> Attributes

  • *logout-url*依赖方或断言方可以触发注销的 URL。

  • *logout-request-url*断言方可以发送 SAML 2.0 注销请求的 URL。

  • *logout-response-url*断言方可以发送 SAML 2.0 注销响应的 URL。

  • relying-party-registration-repository-ref Reference to the RelyingPartyRegistrationRepository.

  • logout-request-validator-ref Reference to the Saml2LogoutRequestValidator.

  • logout-request-resolver-ref Reference to the Saml2LogoutRequestResolver.

  • logout-request-repository-ref Reference to the Saml2LogoutRequestRepository.

  • logout-response-validator-ref Reference to the Saml2LogoutResponseValidator.

  • logout-response-resolver-ref Reference to the Saml2LogoutResponseResolver.

<password-management>

此元素配置密码管理。

Parent Elements of <password-management>

<password-management> Attributes

  • *change-password-page*更改密码页面。默认为“/change-password”。

<port-mappings>

默认情况下,PortMapperImpl 的实例将添加到配置中,以用于重定向到安全和不安全的 URL。这个元素可选择用于替代该类定义的默认映射。每个子 <port-mapping> 元素定义一对 HTTP:HTTPS 端口。默认映射为 80:443 和 8080:8443。可在 Redirect to HTTPS 中找到一个替代它们的示例。

Parent Elements of <port-mappings>

Child Elements of <port-mappings>

<port-mapping>

提供在强制重定向时将 http 端口映射到 https 端口的方法。

Parent Elements of <port-mapping>

<port-mapping> Attributes

  • *http*要使用的 http 端口。

  • *https*要使用的 https 端口。

<remember-me>

RememberMeAuthenticationFilter 添加到堆栈。这反过来将使用 TokenBasedRememberMeServicesPersistentTokenBasedRememberMeServices 或实现 RememberMeServices 的用户指定 bean 根据属性设置进行配置。

Parent Elements of <remember-me>

<remember-me> Attributes

  • *authentication-success-handler-ref*如果需要自定义导航,请设置 `RememberMeAuthenticationFilter`上的 `authenticationSuccessHandler`属性。该值应为应用程序上下文中的 `AuthenticationSuccessHandler`bean 的名称。

  • *data-source-ref*对 `DataSource`bean 的引用。如果设置此项,将使用 `PersistentTokenBasedRememberMeServices`并将其配置为 `JdbcTokenRepositoryImpl`实例。

  • *remember-me-parameter*切换记住我身份验证的请求参数名称。默认为“remember-me”。映射到 `AbstractRememberMeServices`的“parameter”属性。

  • *key*映射到 `AbstractRememberMeServices`的“key”属性。应设置一个唯一的值来确保记住我 cookie 仅在一个应用程序中有效。这不会影响令牌存储在服务器端时的 `PersistentTokenBasedRememberMeServices`的使用。如果未设置此项,将生成一个安全的随机值。由于生成安全的随机值需要一定的时间,因此在使用记住我功能时,显式设置此值有助于提高启动时间。

  • *services-alias*将内部定义的 `RememberMeServices`导出为 bean 别名,允许应用程序上下文中的其他 bean 使用它。

  • *services-ref*允许完全控制过滤器将使用的 RememberMeServices`实现方式。该值应为实现此界面的应用程序上下文中的 bean 的 `id。如果注销过滤器正在使用中,还应实现 LogoutHandler

  • *token-repository-ref*配置 PersistentTokenBasedRememberMeServices,但允许使用自定义 `PersistentTokenRepository`bean。

  • *token-validity-seconds*映射到 `AbstractRememberMeServices`的 `tokenValiditySeconds`属性。指定记住我 cookie 应有效的时段(以秒为单位)。默认情况下,它将保留 14 天。

  • *user-service-ref*记住我服务实现需要访问 UserDetailsService,因此必须在应用程序上下文中定义一个。如果只有一个,则命名空间配置会自动选择并使用它。如果有多个实例,可以使用此属性显式指定一个 bean id

<request-cache> Element

设置 RequestCache 实例,该实例将由 ExceptionTranslationFilter 用来在调用 AuthenticationEntryPoint 之前存储请求信息。

Parent Elements of <request-cache>

<request-cache> Attributes

  • *ref*定义对 Spring bean(即 RequestCache)的引用。

<session-management>

会话管理相关功能是通过将 SessionManagementFilter 添加到筛选器堆栈来实现的。

Parent Elements of <session-management>

<session-management> Attributes

  • *authentication-strategy-explicit-invocation*将此属性设置为 true 意味着不会注入 SessionManagementFilter,并且需要显式调用 SessionAuthenticationStrategy。

  • *invalid-session-url*设置此属性会使用配置有属性值的 SimpleRedirectInvalidSessionStrategySessionManagementFilter 中注入。当提交无效的会话 ID 时,将调用此策略,并将其重定向到已配置的 URL。

  • *invalid-session-url*允许注入 SessionManagementFilter 使用的 InvalidSessionStrategy 实例。使用此属性或 invalid-session-url 属性,但不能同时使用这两个属性。

  • *session-authentication-error-url*定义当 SessionAuthenticationStrategy 引发异常时应显示的错误页面的 URL。如果未设置,则将向客户端返回未授权(401)错误代码。请注意,如果错误发生在基于表单的登录期间,则此属性不适用,此时用于身份验证失败的 URL 将具有优先权。

  • *session-authentication-strategy-ref*允许注入 SessionManagementFilter 使用的 SessionAuthenticationStrategy 实例

  • *session-fixation-protection*表示当用户进行身份验证时,如何应用会话固化保护。如果设置为“none”,则不应用任何保护。“newSession”将创建一个新的空会话,并且只迁移与 Spring Security 相关的所有属性。“migrateSession”将创建一个新会话,并将所有会话属性复制到新会话中。在 Servlet 3.1(Java EE 7)和更新的容器中,指定“changeSessionId”将保留现有会话并使用容器提供的会话锁定保护(HttpServletRequest#changeSessionId())。在 Servlet 3.1 及更高版本容器中默认为“changeSessionId”,在旧容器中默认为“migrateSession”。如果在旧容器中使用“changeSessionId”,则会引发异常。如果启用会话固定保护,则将配置 SessionManagementFilter 注入适当配置的 DefaultSessionAuthenticationStrategy。有关更多详细信息,请参阅此类的 Javadoc。

Child Elements of <session-management>

<concurrency-control>

添加对并发会话控制的支持,允许对用户可以拥有的活动会话数进行限制。将创建一个 ConcurrentSessionFilter,并且 ConcurrentSessionControlAuthenticationStrategy 将与 SessionManagementFilter 一起使用。如果已声明 form-login 元素,则策略对象还将注入到创建的身份验证筛选器中。将创建一个 SessionRegistry 实例(一个 SessionRegistryImpl 实例,除非用户希望使用自定义 bean)以供策略使用。

Parent Elements of <concurrency-control>

<concurrency-control> Attributes

  • *error-if-maximum-exceeded*如果设为“true”,那么当用户尝试超过允许的最大会话数量时,将引发 SessionAuthenticationException。默认行为是使原始会话过期。

  • *expired-url*如果用户尝试使用已被并发会话控制器“过期”的会话(因为用户已超过允许的会话数量,并且已在其他地方重新登录),则用户将被重定向到的 URL。如果不设置此项,则应 exception-if-maximum-exceeded 设置。如果不提供任何值,则会将过期消息直接写回响应中。

  • *expired-url*允许注入 ConcurrentSessionFilter 使用的 ExpiredSessionStrategy 实例

  • *max-sessions*映射到 ConcurrentSessionControlAuthenticationStrategymaximumSessions 属性。指定 -1 为值以支持无限会话。

  • *session-registry-alias*在您自己的 Bean 或管理界面中引用内部会话注册表也会很有用。您可以使用 session-registry-alias 属性公开内部 Bean,并为其提供一个名称,以便在配置中的其他位置使用该名称。

  • *session-registry-ref*用户可以使用 session-registry-ref 属性提供他们自己的 SessionRegistry 实现。其他并发会话控件 Bean 将被连接起来以使用它。

<x509>

添加对 X.509 身份验证的支持。X509AuthenticationFilter 将被添加到堆栈,并且将创建 Http403ForbiddenEntryPoint bean。只有在不使用任何其他身份验证机制时才使用后者(其唯一功能是返回 HTTP 403 错误代码)。还将创建一个 PreAuthenticatedAuthenticationProvider,它将用户权限的加载委托给 UserDetailsService

Parent Elements of <x509>

<x509> Attributes

  • *authentication-details-source-ref*对 AuthenticationDetailsSource 的引用

  • *subject-principal-regex*定义一个正则表达式,该表达式将用于从证书中提取用户名(与 UserDetailsService 一起使用)。

  • *user-service-ref*允许在配置了多个实例的情况下,对 X.509 使用特定的 UserDetailsService。如果未设置,它将尝试自动查找合适的实例并使用该实例。

<filter-chain-map>

用于使用 FilterChainMap 显式配置 FilterChainProxy 实例

<filter-chain-map> Attributes

  • *request-matcher*定义用于匹配传入请求的策略。当前选项有“ant”(用于 ant 路径模式)、“regex”(用于正则表达式)和“ciRegex”(用于不区分大小写的正则表达式)。

Child Elements of <filter-chain-map>

<filter-chain>

在其中用于定义特定的 URL 模式和适用于匹配该模式的 URL 的筛选器列表。当多个过滤器链元素以列表方式组装在一起以配置 FilterChainProxy 时,最具体的模式必须放在列表顶部,最通用的模式必须放在底部。

Parent Elements of <filter-chain>

<filter-chain> Attributes

  • *filters*对实现 Filter 的 Spring Bean 的引用的逗号分隔列表。值“none”表示不应为该 FilterChain 使用任何 Filter

  • *pattern*创建一个 RequestMatcher 的模式,并与 request-matcher 结合使用

  • *request-matcher-ref*对 RequestMatcher 的引用,它将用于确定是否应调用 filters 属性中的任何 Filter

<filter-security-metadata-source>

用于显式配置 FilterSecurityMetadataSource bean 以与 FilterSecurityInterceptor 一起使用。通常仅在你显式配置 FilterChainProxy(而不是使用<http>元素)时才需要。使用的 intercept-url 元素应仅包含模式、方法和访问属性。任何其他属性都会导致配置错误。

<filter-security-metadata-source> Attributes

  • *id*Bean 标识符,用于在上下文的其他位置引用 Bean。

  • *request-matcher*为匹配传入请求定义要使用的策略。当前选项有“ant”(用于 ant 路径模式)、“regex”(用于正则表达式)和“ciRegex”(用于不区分大小写的正则表达式)。

  • *use-expressions*启用在 <intercept-url> 元素的“access”属性中使用表达式,而不是使用传统的配置属性列表。默认为“true”。如果启用,则每个属性应包含一个布尔表达式。如果表达式计算结果为“true”,则将授予访问权限。

Child Elements of <filter-security-metadata-source>