簡體   English   中英

使用Apache CXF DOSGi進行身份驗證和會話管理

[英]Authentication and Session management with Apache CXF DOSGi

我有一個使用cxf DOSGi [1]的客戶端-服務器應用程序。 現在,我想從服務器驗證客戶端並為客戶端創建會話。 客戶端將具有一個cookie,該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] 使用Web服務時如何管理用戶的會話?

非常感謝您的幫助。 謝謝。

您可以使用自定義意圖來控制身份驗證。 基本上,意圖是一種由DOSGi應用於Web服務的CXF功能。 您可以在單獨的捆綁軟件中創建功能,然后使用其特殊名稱發布該功能:請參閱《 DOSGi參考指南》

在一個項目中,我們創建了一個功能,該功能讀取包含身份驗證上下文的threadlocal並使用存儲在其中的憑據填充CXF身份驗證。 因此,您只需要在應用程序啟動時將憑據一次存儲到threadlocal中,所有調用就可以進行。

當前沒有這種情況的簡單文檔或示例,但是我計划在不久的將來創建它,因為身份驗證是一個常見問題。 我計划將shiro用作身份驗證框架,並為CXF編寫通用適配器。 准備好后,我會立即添加評論或其他答案。 同時,您可以嘗試自己做同樣的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM