集成
Spring Security 与众多框架和 API 集成。本节描述了 Spring Security 与其他技术的各种集成:
章节摘要
并发
在大多数环境中,安全性是基于每个线程存储的。这意味着当在一个新线程上执行工作时,SecurityContext 会丢失。Spring Security 提供了一些基础设施来帮助更轻松地管理这一点。Spring Security 为在多线程环境中使用 Spring Security 提供了低级抽象。实际上,Spring Security 正是基于此与 AsyncContext.start(Runnable) 和 Spring MVC 异步集成的。
Jackson
Spring Security 提供了 Jackson 支持,用于持久化与 Spring Security 相关的类。在处理分布式会话(如会话复制、Spring Session 等)时,这可以提高序列化 Spring Security 相关类的性能。
本地化
如果你需要支持其他区域设置,本节包含了你需要知道的所有内容。
Servlet APIs
本节介绍 Spring Security 如何与 Servlet 2.5 规范集成。
Spring Data
Spring Security 提供了 Spring Data 集成,允许在查询中引用当前用户。在查询中包含用户不仅有用,而且是支持分页结果所必需的,因为之后过滤结果将无法扩展。
Spring MVC
Spring Security 提供了许多可选的与 Spring MVC 的集成。本节将更详细地介绍这些集成。
WebSocket
Spring Security 4 添加了对保护 Spring 的 WebSocket 支持的功能。本节描述如何使用 Spring Security 的 WebSocket 支持。
Spring 的 CORS 支持
Spring Framework 为 CORS 提供了一流的支持。CORS 必须在 Spring Security 之前处理,因为预检请求不包含任何 cookie(即,JSESSIONID)。如果请求不包含任何 cookie 并且 Spring Security 是首先处理的,那么请求会判定用户未通过身份验证(因为请求中没有 cookie),并拒绝该请求。
JSP 标签库
要使用任何标签,必须在您的JSP中声明安全标签库:
可观测性
Spring Security 开箱即用地与 Spring Observability 集成以进行跟踪;不过,配置它来收集指标也非常简单。