我有一个使用cxf DOSGi 1的客户机-服务器应用程序。现在,我想从服务器验证客户机,并为客户机创建一个会话。客户端将拥有一个cookie,一旦通过身份验证,该cookie将用于访问服务。我想知道服务器访问HTTP会话的最佳方式,以及在通过身份验证后在客户端存储cookie的最佳方式。
我正在考虑一旦通过身份验证,就在应用程序级创建一个自定义会话对象,并将一个Cookie对象发送到客户端。因此,当客户端访问服务方法时,它会将cookie作为参数传递。客户端将在每个服务方法中进行验证。但我不认为这是处理这个问题的最好方法,因为每个服务方法都必须有一个单独的参数来传递Cookie。
我在谷歌上搜索2的时候遇到了这个问题,有没有可能在DOSGi的服务中找到"WebServiceContext“?即使我得到了cookie,我如何在客户端存储cookie,并确保客户端在随后的每次web服务调用中都发送cookie?
1
任何帮助都是非常感谢的。谢谢。
发布于 2013-06-24 03:03:07
您可以使用自定义意图来控制身份验证。基本上,intent是由DOSGi应用于the服务的CXF特性。您可以在单独的捆绑包中创建该特性,然后使用其名称的特殊属性发布它:请参阅DOSGi reference guide。
在一个项目中,我们创建了一个读取包含身份验证上下文的线程本地的功能,并使用存储在那里的凭据来填充CXF身份验证。因此,您只需在应用程序开始时将凭据存储到线程本地中一次,所有调用即可正常工作。
目前,对于这种情况还没有简单的文档或示例,但我计划在不久的将来创建它,因为身份验证是一个常见的问题。我计划使用shiro作为身份验证框架,并为CXF编写一个通用适配器。一旦我准备好了,我会添加一个评论或另一个答案。在此期间,您可以尝试自己做同样的事情。
https://stackoverflow.com/questions/17250852
复制相似问题