【问题标题】:Session bean when the application is stateless应用程序无状态时的会话 bean
【发布时间】:2017-01-10 15:38:47
【问题描述】:

我有一个非常简单的问题:当我的应用程序中有SESSION 作用域bean 时会发生什么STATELESS

说来话长。我有后端应用程序,用Spring Boot 编写,它为REST API 服务于AngularJS 编写的前端。我使用JWT 进行身份验证过程,Spring Security 配置为STATELESS。 但我也在使用WebServiceTemplateSharePoint 进行通信。我负责与SOAP API 通信的bean 是SESSION 范围的bean,因为它们依赖于用户凭据。很难将 WebServiceTemplate 配置为每次调用使用不同的凭据,所以我决定在创建时进行配置,然后我的问题就开始了。

【问题讨论】:

    标签: web-services session spring-security spring-boot stateless


    【解决方案1】:

    一旦您将一些状态存储到会话范围的 bean 中,您的应用程序就会变成有状态的。

    如果您需要在请求之间共享状态(在本例中为 SOAP 服务凭证)并希望拥有无状态应用程序(例如,因为您的应用程序的集群),您有几个选择:

    1. 将该状态存储到数据库中,并可选择将其缓存在服务中。 (如果 SOAP 调用失败,您可以使缓存失效并从数据库中读取新的凭据)
    2. 使用Spring Session project 或一些键值对存储来存储会话状态。

    【讨论】:

    • 感谢您的建议。我会选择第二种解决方案。现在我在序列化 WebServiceMessageSender 对象时遇到问题。此对象为我存储 WebServiceTemplate 的用户凭据,但它本身不可序列化。
    猜你喜欢
    • 2011-03-07
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 2011-03-31
    • 2011-01-02
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    相关资源
    最近更新 更多