设置种session的范围
设置种session的范围
CAMELLIA设置种session的范围
共享 Cookie 是在多个子域之间实现状态或数据共享的常见需求。例如,在一个公司的多个子网站之间(如 sub1.example.com
和 sub2.example.com
)共享用户的登录状态。
在 HTTP 协议中,Cookie 是通过域名和路径来确定其作用范围的。当服务器向客户端发送一个 Cookie 时,可以指定 Cookie 的 Domain 属性。浏览器会根据这个属性来决定 Cookie 是否在特定域名或子域名下发送。
为了使多个子域共享一个 Cookie,可以将 Cookie 的 Domain 属性设置为一个更高层的公共域名,例如将 sub1.example.com
和 sub2.example.com
的 Cookie 设置为 example.com
。这样做的好处在于:
- 共享状态: 用户在一个子域登录后,在其他子域也可以保持登录状态,不需要再次登录。
- 统一管理: 可以通过一个公共域名来统一管理和操作 Cookie,简化了操作和维护。
以下是设置共享 Cookie 的示例代码:
1 | Cookie cookie = new Cookie("username", "john"); |
在这个例子中,Cookie 的 Domain 设置为 .example.com
(注意前面的点),这样所有 example.com
及其子域(如 sub1.example.com
和 sub2.example.com
)都可以访问这个 Cookie。
在SpringBoot中配置
在 Spring Boot 3 中,可以使用更简洁的方法通过配置属性来共享 Cookie。
- 配置
application.properties
文件
在 Spring Boot 3 中,可以直接在 application.properties
或 application.yml
文件中配置 server.servlet.session.cookie.domain
属性来设置 Cookie 的域名。
application.properties
示例:
1 | server.servlet.session.cookie.domain=.example.com |
application.yml
示例:
1 | server: |
通过这种方式,可以在 Spring Boot 3 中使用更简洁的方法配置共享 Cookie 的域名,使多个子域之间能够共享状态信息。