我正在使用Apache Jersey構建一個RESTful Webservice。現在我希望你需要對它的一些請求進行認證。使用典型的REST方法,認證應該通過HTTP認證完成。但是一個帖子here提到了一個更好的方法是如何使用cookie。我認爲討論中有一些有用的觀點。 (如何)我可以使用Cookie來進行Jersey驗證嗎?我需要另一個框架嗎?在Apache Jersey中進行身份驗證而不使用Http身份驗證?
4
A
回答
6
Jersey使用封裝的Web應用程序的web.xml中聲明的身份驗證機制,實際上是HTTP身份驗證(通過SSL)或基於窗體的Cookie身份驗證。
如果要使用基於cookie的會話認證,用戶必須首先使用Web服務進行認證,以創建一個會話,該會話可用於檢查未來呼叫的身份。該servlet規範提供了一種標準化的方式來使用cookie和使用web表單進行會話進行身份驗證,但是這與web服務類型的應用程序不兼容。因此,您可能需要製作一些自定義解決方案,以便用戶通過發佈XML或JSON文檔來提交憑據。這種方法的一個問題是,如果用戶在沒有首先進行身份驗證的情況下或者在會話過期之後執行了對資源的調用,他們將需要重定向或接收某種類型的錯誤代碼。不是不可能的,但它增加了您的Web服務的複雜性。
此時您不得不懷疑,使用HTTP身份驗證不是Web服務樣式應用程序的更好選擇。我們最近使用Jersey和HTTP Auth作爲身份驗證機制構建了一個Web服務。然後我們在它上面建立一個Javascript前端。 Javascript客戶端總是向Web服務提交Authentication標頭,以便用戶永遠不會遇到來自瀏覽器的HTTP Auth認證窗口。也許是兩全其美。
相關問題
- 1. Authlogic - 通過基本HTTP身份驗證進行身份驗證
- 2. Jersey中的身份驗證
- 3. 使用ManifoldCF進行Apache身份驗證
- 4. 使用PHP身份驗證的HTTP身份驗證
- 5. 使用HTTP身份驗證
- 6. Jersey + Tomcat身份驗證
- 7. Jersey Client API - 身份驗證
- 8. 使用Ruby對Azure進行身份驗證(HTTP Header身份驗證)?
- 9. RabbitMQ - 僅使用HTTP身份驗證後端進行身份驗證?
- 10. 用asp.net進行Azure AD身份驗證身份驗證
- 11. 獲取用戶的身份而不進行身份驗證
- 12. 禁用其他身份驗證的HTTP基本身份驗證
- 13. 無法在IBM Worklight中使用LDAP身份驗證進行身份驗證
- 14. HTTP摘要身份驗證
- 15. Windows身份驗證 - 如何進行身份驗證使用不同的域
- 16. 。使用nginx進行.htaccess身份驗證
- 17. HTTP簡單身份驗證與POST表單身份驗證
- 18. 與基本身份驗證的HTTP基本身份驗證
- 19. HTTP身份驗證VS OAuth VS HttpClient身份驗證
- 20. 使用Java apache http令牌進行Google身份驗證
- 21. PHP HTTP身份驗證驗證失敗
- 22. Apache LDAP身份驗證Redmine
- 23. Apache身份驗證刷新
- 24. Apache SSPI身份驗證
- 25. Apache基本身份驗證
- 26. apache httpclient + ntlm身份驗證
- 27. Apache LDAP身份驗證保持HTTP 500
- 28. java Apache Cxf HTTP身份驗證
- 29. 使用Windows身份驗證的簡單身份驗證代理
- 30. 螳螂用戶身份驗證無法在Dokuwiki中進行身份驗證