集成
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 集成以进行跟踪;不过,配置它来收集指标也非常简单。