2014-02-24 30 views
2

我正在GRAILS中爲我的中學的房間調度構建決策支持工具。我正在使用Spring Security,我想要保護REST API。我找到了很少的信息來說明正確的方法。不過,我一直在尋找的Spring Security REST plugin使用安全REST插件保護REST API

文件是不是對我很清楚,沒有任何人有使用這個插件的工作示例/教程?

關於如何實現這一點的建議將非常棒。

+0

您是否通過[序列圖]不見了(http://alvarosanchez.github.io/grails-spring-security-rest/docs/guide/introduction.html) ?你是否一字一句地閱讀整個文檔?你有嘗試過什麼嗎? – dmahapatro

+0

我發現的唯一文檔是[here](http://alvarosanchez.github.io/grails-spring-security-rest/)。主要的問題是我不知道手動操作哪些步驟才能使插件工作,哪些步驟由插件自動執行。 @dmahapatro – thomasvdbossche

+0

如果您現在正在使用GORM存儲並且正在使用1.3.0.RC版本,您只需要GORM相關配置。 – dmahapatro

回答

3

我只是爲你讀出順序圖。我正在使用這個插件和(AngularJS在客戶端)的示例應用程序,並且即將發佈(可能是今晚)。

步驟如下:

  • 使用任何HTTP方法的REST資源客戶端請求。
  • 服務器響應客戶端的請求與401(未經授權)。
  • 客戶端(收到401時)將用戶重定向到登錄頁面以提供用戶名和密碼。 (請記住Spring Security Core插件)
  • 用戶提供用戶名和密碼。 (手段,客戶應發出與用戶信息的請求體/請求PARAM插件彈簧安全REST提供了POST請求擊球/ API /登錄)
  • 服務器在接收到用戶的信息做4項任務:
    • 驗證用戶。
    • 生成一個令牌(默認情況下由Spring Security REST插件提供)。
    • 存儲令牌(在memcahe或GORM指定的域類中)。
    • 將標記返回給被調用者(客戶端)。
  • 在從服務器接收到生成的令牌後,客戶端將其存儲在任何本地存儲中,並用於該特定用戶的進一步API調用。
  • 每次API被擊中任何資源,令牌在頭中傳遞的X-Auth-Token(默認值),而不是通過每一次Basic Auth

因此,您最終將得到一個基於令牌的REST端點驗證。 通過插件的FAQ獲得更多答案。

作者將很快發佈最新版本的插件(1.3.0)中,你會發現文檔中一些更新。

我剛剛接觸這個插件的基本功能的權利,但它具有靈活性來處理的不僅僅是生成令牌更多。例如,delegating auth to OAuth providers。只要我將它推送到github,我就會在這個答案中更新上述示例應用程序的鏈接。

UPDATE:
Sample App