簡體   English   中英

使用Spring和Apache CXF實現Java Web Services的安全性

[英]Implementing Security for Java Web Services with Spring and Apache CXF

我有一個在Java Spring 3上運行的應用程序。我的應用程序使用RESTful服務和Spring Security來確保安全。 它具有一個用戶表,並從中檢查用戶憑據。 我為我的應用程序實現了Web服務功能(客戶所需的Web服務之一,而不是RESTful服務)。 如果可能,我希望使用相同的身份驗證機制,並希望查找該數據庫並僅允許一個用戶(現在是管理員)與我的Web服務服務器進行通信。

我應該采用與我的RESTful身份驗證相同的方法,還是在Spring上針對Java Web Services使用任何身份驗證和安全機制(即,如何處理注銷,如何為客戶端-服務器Web服務通信啟用注銷機制)

PS:我使用Apache-CXF。

兩種可能的方式:

  1. BasicAuthenticationFilter或DigestAuthenticationFilter放在CXF Servlet的前面。

  2. 將WS-Security UsernamePasswordToken與CXF一起使用,並編寫一個CallbackHandler,以便a)創建一個UsernamePasswordAuthenticationToken,b)調用authenticationManager.authenticate()和c)將認證存儲在SecurityContextHolder中。

請注意,以上內容並未涵蓋注銷的概念,因為登錄會話通常是使用Cookie來實現的,並且以上內容是無狀態的方法。 如果您確實需要注銷,則應考慮使用OAuth,因為可以通過使訪問令牌無效來實現注銷。

您可以將安全令牌放在要發送到REST的HTTP標頭中,REST會解碼並驗證它是否來自管理位置。

暫無
暫無

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

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