簡體   English   中英

JAX-RS-RESTful Web服務中的身份驗證和獲取用戶數據

[英]JAX-RS - Authentication and getting user data in RESTful web services

我是RESTful Web服務的新手,我正在嘗試使用JAX-RS設計我的第一個安全Web服務。 但是我有這個疑問。

想象一下,我有一個Messenger API,其中有一個“ / posts” Web服務,它將為調用它的用戶提供所有帖子。 因此,我設計了一個進行身份驗證的基本auth過濾器,如果用戶有效,它將把請求傳遞給/ posts服務,該服務為用戶提供了一系列的帖子。 現在的問題是我的數據庫中的用戶具有未向該用戶公開的用戶ID。 在/ posts服務中,我需要userId來獲取請求用戶的帖子。 因此,我的過濾器進行身份驗證並獲取登錄用戶的userId。

我的問題是如何將此userId傳遞到/ posts Web服務?

我現在的方法是在過濾器中添加此userId作為請求標頭信息,然后將其傳遞到/ posts服務。

但是,如果這樣做是正確的方法,我還是感到困惑,還是應該以其他方式優雅地處理這種情況?

請幫助我了解什么是最好的方法。

聽起來好像您正在考慮在已經建立好的標准有充分記錄的情況下創建自己的安全性。 我過去曾經使用OAuth和JWT令牌來保護其余端點。 根據您的特定要求,您可能可以使用基本身份驗證。

在安全性方面,很少有您能比專家做得更好,因此,如果您可以遵循標准,則可能應該這樣做。 另一個好處是,下一個長期工作的人會擁有所有的文檔和支持。

更新:

僅在請求中包含用戶ID是不夠的。 任何知道其他人的用戶ID的人都可以欺騙該人,並以其他用戶的身份發布到端點。

“我的問題是如何將此userId傳遞到/ posts Web服務?”

會話可用於存儲內部用戶ID。 如果您已經讓他們使用會話登錄,則應該能夠從會話中提取用戶ID。 如果要使用JWT(無狀態),則可以提取存儲在令牌中的任何信息來完成同一件事。

暫無
暫無

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

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