2014-04-15 86 views
0

我在Spring Security(SSC)的Grails應用程序中遇到以下問題。我的應用程序應該提供一些可瀏覽的頁面以及一個Restful API。Grails SpringSecurity Rest基本身份驗證+登錄表

在瀏覽器中使用應用程序時,應用程序應顯示SSC和登錄/註銷控制器使用的登錄表單。但是我也想用相同的URI替代地使用BasiAuthentication。

例如:如果我對來自瀏覽器的/ myApp/testCall進行調用,它應該顯示登錄表單以防尚未登錄的用戶。如果用戶登錄,它應該正常處理。但是,如果我使用Authorization Header調用/ myApp/testCall,那麼應用程序應該認識到這一點,並通過Basic Auth驗證用戶身份。

到目前爲止,我已經得到了什麼,不管是基本身份驗證還是登錄表單單獨使用,但不是與此通緝令有關。一旦我在我的應用程序中激活了basiAuth,它就會一直顯示默認登錄窗口(基本身份驗證瀏覽器登錄),但它應該顯示LoginForm。

希望有人可以幫助我解決這個問題,我需要以某種方式把過濾器,它負責在基本身份驗證過濾器前顯示登錄表單,但在另一種情況下,如果我提供基本身份驗證證書應該只需登錄我即可。

回答

0

上週我有一個類似的question,不完全是您的問題的答案,但它可以幫助您開始。本來會添加這個作爲評論,但我沒有代表。

+0

謝謝,這或多或少類似於我的問題。我現在的解決方案只是將UrlMappings分成兩部分。 API的一部分(僅用於基本身份驗證)和一個用於可瀏覽部分的部分。 – user1878371

+0

還發現了一個偉大的博客文章:http://asoftwareguy.com/2014/03/17/using-grails-rest-for-authentication-in-an-angularjs-spa/ – Dennis

+0

我也讀過這個,坦克。就目前而言,我改變了前面提到的Url-scheme,並最終遇到了這個bug,這也是我認爲的第一個問題。 [SpringSecurity Bug](http://jira.grails.org/browse/GPSPRINGSECURITYCORE-210) – user1878371