【发布时间】:2013-06-19 12:09:13
【问题描述】:
我有一个使用 cxf DOSGi [1] 的客户端 - 服务器应用程序。现在我想从服务器验证客户端并为客户端创建一个会话。客户端将有一个 cookie,用于在通过身份验证后访问服务。我想知道服务器访问 HTTP 会话的最佳方式是什么,以及在经过身份验证后在客户端存储 cookie 的最佳方式。
我正在考虑在经过身份验证后在应用程序级别创建一个自定义 Session 对象并将 Cookie 对象发送到客户端。所以当客户端访问服务方法时,它会将cookie作为参数传递。客户将在每种服务方法中进行验证。但我不认为这是处理这个问题的最佳方式,因为每个服务方法都必须有一个单独的参数来传递 Cookie。
我在谷歌搜索 [2] 时遇到了这个问题。是否可以在 DOSGi 的服务中获取“WebServiceContext”?即使我得到它,我将如何将 cookie 存储在客户端并确保客户端在每个后续 Web 服务调用中发送 cookie?
[1]http://cxf.apache.org/distributed-osgi-greeter-demo-walkthrough.html
[2]How can I manage users' sessions when I use web services?
非常感谢任何帮助。 谢谢。
【问题讨论】:
-
您需要会话来创建有状态服务,还是只想使用它来维护身份验证?如果只是身份验证,为什么不简单地为每个呼叫使用基本身份验证?
-
我不想要有状态的服务。要求是对用户进行身份验证并只允许授权用户访问服务。要为每次调用使用基本身份验证,客户端必须在每次访问服务方法时传递一个用户令牌。我怎么做? DOSGi 有可能吗,因为 AFAIU 我无法从 OSGi 级别获取 Web 服务请求信息?
标签: java session authentication cxf dosgi