2017-10-10 142 views
1

我試圖找到一個解決方案來實現認證和授權到我的應用程序,它通過REST API和目前公開的服務有一個Web應用程序客戶端:如何保護JSF應用程序客戶端和服務器端REST API模塊


| Web應用程序客戶端| - > JSF/Primefaces

| REST API | - > JAX-RS/Jersey

|業務邏輯和持久性API | - > EJB/JPA

|數據庫| - > MySQL的


的REST API提供了幾個服務,它們之間也登錄服務。我想通過在每個客戶端請求上使用我的身份驗證機制(也在上面提到的登錄服務後面使用)來閱讀和檢查用戶的憑據來保留REST無狀態約束。

在Web應用程序方面,我可以使用在REST登錄調用之後作爲響應獲得的用戶和相關角色信息來檢查受保護的資源訪問(阻止URI訪問,啓用/禁用GUI按鈕),並將這些信息保存在HTTP會話。

現在,當檢查並驗證某個用戶的操作在Web應用程序級別被授予時,將再次對REST API級別執行第二次檢查。

你覺得這種做法是正確的嗎? 我試圖瞭解是否有可能避免在兩個圖層上重複檢查授權。

此外,我公司正在調查一個或兩個我的層引入春季安全的,我可以利用從呢?

由於提前,有一個美好的一天!

回答

0

我認爲可以採取兩種方法來你的應用程序了(AUTH方面)安全:

  1. 升級httphttps,每當客戶端發送一個請求,你可以檢查證書。
  2. 使用基本身份驗證或摘要身份驗證來驗證登錄過程(如果您想足夠安全,請更好地摘要)並將唯一令牌返回給客戶端。每次請求到達時驗證令牌。

您不必檢查每個請求的用戶憑據,只需檢查令牌。

+0

HTTPS和摘要認證肯定會有很大的改進,謝謝。不過,我編輯了我的問題,試圖更好地解釋我的問題:「令牌」解決方案將有利於身份驗證,但授權又如何? –

+0

我錯過了它是一個web應用程序,您可以使用spring安全性來管理服務器端的身份驗證和授權。 –