当应用程序无状态时,会话bean

时间:2016-09-02 13:36:00

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

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

长篇故事。我有一个用Spring Boot编写的后端应用程序,它为REST API中的前端提供AngularJS。我正在使用JWT进行身份验证过程,并且Spring Security配置为STATELESS。 但我也使用WebServiceTemplateSharePoint进行通信。负责与SOAP API通信的我的bean是SESSION范围的bean,因为它们依赖于用户凭据。配置WebServiceTemplate以便为每个调用使用不同的凭据非常困难,因此我决定在创建时进行配置,然后我的问题就开始了。

1 个答案:

答案 0 :(得分:0)

只要将某个状态存储到会话范围的bean中,您的应用程序就会变为有状态。

如果您需要在请求之间共享状态(在这种情况下为SOAP服务凭据)并希望拥有无状态应用程序(例如,由于应用程序的群集),您几乎没有选择:

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