我有一個提供REST API的Grails後端。我的移動應用程序訪問此REST Api以從服務器獲取數據。認證,登錄和註銷應該使用Spring Security完成。使用REST API的Spring Security身份驗證?
這對於桌面用戶非常適用,因爲我服務的是構建在服務器上的頁面。
如何爲我的REST控制器使用Spring Security來獲得身份驗證,登錄和註銷的工作?
我有一個提供REST API的Grails後端。我的移動應用程序訪問此REST Api以從服務器獲取數據。認證,登錄和註銷應該使用Spring Security完成。使用REST API的Spring Security身份驗證?
這對於桌面用戶非常適用,因爲我服務的是構建在服務器上的頁面。
如何爲我的REST控制器使用Spring Security來獲得身份驗證,登錄和註銷的工作?
如果您提供的是REST API,則可能不需要實現登錄和註銷。在認證方面,通常最簡單的方法就是使用HTTP Basic。 Spring Security支持開箱即用的基本功能,因此這對您來說應該不成問題。
這是Erwin Vervaet關於setting up Grails to use HTTP Basic authentication的博客的一個很好的閱讀。
請參閱How does Spring Security sessions work? 使春季安全會議有意義。您的移動應用不會像桌面上的瀏覽器那樣爲您提供Cookie。因此,您可以考慮在首次登錄後在每個移動請求中包含jsessionid,這是爲了充分利用spring安全性的完全授權和身份驗證支持,而不是基本身份驗證可以做到的。
你有這樣的例子嗎? – confile
爲什麼我不需要實現登錄等? – confile
因爲使用HTTP Basic,用戶名和密碼會傳遞給應用程序以執行每個請求,從而使身份驗證機制無狀態。當你有一個無國籍的應用程序時,確實沒有登錄或註銷的概念。服務器可能會選擇緩存實際的身份驗證(例如在內部使用會話),但緩存與狀態不同。 –
好吧,這似乎很簡單。如果我在每個請求上發送密碼,這不是一個安全問題嗎?密碼是否應該傳送或加密? – confile