我有一个 Swing 客户端和一个在 tomcat 7 上运行的服务器,它们使用 Spring (3.1) HTTP 调用程序相互通信。到目前为止,通信工作正常(即使使用 TSL),但现在我正在尝试添加 Spring Security。
旁注:在典型的 Web 应用程序中,我将使用基本身份验证来验证用户身份。在我的 CustomAuthenticationProvider 为用户返回一个 Authentication 对象后,一切都“正常工作”,这意味着在每个进一步的请求中,SecurityContext 都会自动设置。我猜登录会向客户端返回一个会话密钥,该密钥会在每个请求上发送以识别会话。
这几乎就是我正在寻找的 HTTP-Invoker。目前,我似乎在每个请求上都获得了一个新的上下文,这很糟糕,因为我的 customAuthenticationManager.authenticate(Authentication auth) 方法非常昂贵,并且每个用户会话实际上应该只调用一次。
任何的想法?
编辑我在http://forum.springsource.org/showthread.php?10764-Maintaing-State-while-using-HttpInvoker找到了一些提示,但是由于这个链接已经超过 8 年了,我希望有一个更容易的解决方案。