我正在开发一个三层应用程序,其中包含暴露底层业务方法的 Web 服务。Web 服务是用 Jersey 以 RESTful 风格实现的,并且该层由实现com.sun.jersey.spi.container.ResourceFilterFactory的过滤器保护:在这个过滤器中,我实现了我的自定义授权机制。所有这些都打包在一个我称之为backend的 Web 应用程序中。我知道你们中的很多人会批评这一点,因为 Web 服务本质上是无状态的,但我们说的是银行环境,一切都必须经过检查和授权。所以请原谅我:-P
然后我有另一个不同的应用程序(客户端)向后端发出异步请求,所有这些请求都必须由后端本身预先授权。
该客户端以两种方式发出请求:
- 第一个是通过 Struts 2 在一个动作中(登录)
- 第二种方式是通过 jQuery ajax(通用数据检索)
这种情况下的问题是,当通过 Struts2 进行第一次调用(登录)时,后端会打开一个会话,否则当所有 jQuery ajax 调用都进行时,后端会打开另一个会话。结果是所有 jQuery ajax 调用都未授权,因为身份验证是在两个不同的会话中进行的。考虑到呼叫来自同一个客户端,我想要实现的是对所有类型的呼叫使用相同的会话。
任何想法 ?
-
亚历克斯