集成
Spring Security 与众多框架和API集成。本节将介绍Spring Security与其他技术的多种集成方式:
章节总结
并发
在大多数环境中,安全信息是基于每个线程存储的。这意味着当在新线程上执行工作时,SecurityContext 会丢失。Spring Security 提供了一些基础设施来帮助简化这一管理过程。Spring Security 为在多线程环境中使用 Spring Security 提供了底层抽象。实际上,Spring Security 正是基于此来与 AsyncContext.start(Runnable) 以及 Spring MVC 异步集成进行整合的。
本地化
如果你需要支持其他语言环境,本节包含了你需要了解的所有内容。
Servlet API
本节介绍 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 开箱即用,支持追踪功能;同时配置以收集指标也相当简单。