2012-06-04 63 views
4

Java Web服務我有一個應用程序的Java上的彈簧3運行我的應用程序使用RESTful服務和Spring Security的安全性。它有一個用戶表並從中檢查用戶憑證。我爲我的應用程序實現了Web服務功能(客戶希望的Web服務之一,而不是RESTful服務)。如果可能的話,我想要相同的認證機制,並希望查找該數據庫,並只允許一個用戶(現在爲管理員)與我的Web服務服務器進行通信。實現安全與Spring和Apache CXF

我是否應該像我的RESTful認證一樣遵循相同的方式,或者在Spring中是否存在Java Web服務的任何認證和安全機制(即如何處理註銷,如何啓用客戶機 - 服務器Web服務通信的註銷機制)

PS:我使用Apache的CXF。

回答

2

兩個潛在途徑:

  1. 將一個BasicAuthenticationFilter or DigestAuthenticationFilter在CXF的Servlet的前面。

  2. Use a WS-Security UsernamePasswordToken與CXF和寫入給CallbackHandler在於:a)創建UsernamePasswordAuthenticationToken,其他B)調用authenticationManager.authenticate()和c)存儲在SecurityContextHolder中的認證。

請注意,上述內容不包括註銷的概念,因爲登錄會話通常使用cookie實現,以上是無狀態方法。如果您真的需要註銷,那麼您應該考慮使用OAuth,因爲您可以通過使訪問令牌失效來實現註銷。

0

你可以把一個安全令牌,你要發送到的REST解碼並驗證它是從管理位置來的REST的HTTP標頭。