2014-07-15 66 views
0

春季安全訪問REST服務我一直在使用sparkl2應用程序來實現的oauth2。我正在使用java config中的sparkl2應用程序中描述的spring-security。我可以使用curl成功獲取auth令牌,並且可以使用curl調用web服務。使用後的瀏覽器中登錄的oauth2和使用Java配置

我的問題是

我怎樣才能登錄後的同一個瀏覽器中訪問我的REST服務爲我的應用程序?我不確定我在這裏錯過了什麼?

讓我解釋我的問題的更多細節。順便瀏覽器保持會話登錄後,我們可以在應用程序訪問任何受保護的資源,什麼是執行,這樣我可以從瀏覽器

回答

0

春季安全仍保留在會話測試我的REST API的最佳方式。會話ID存儲在瀏覽器cookie中,因此每個請求都會傳遞給您的服務。然後春季安全應該採取它,並檢查是否允許特定的會話(用戶登錄)擊中這個特定的網址。

我會在你的java配置配置安全的路徑開始:

http.authorizeRequests().antMatchers().hasAnyRole(...) 

或一些其他方法來代替antMatchers。

你可能以用戶身份登錄到一些OAuth的回調春季安全,是這樣的:

Authentication auth = new UsernamePasswordAuthenticationToken(user, null, authorities); 
SecurityContextHolder.getContext().setAuthentication(auth); 
+0

謝謝您的幫助。正如我前面解釋的那樣,我使用sparkl2代碼並將內存中的tokenStore更改爲jdbcTokenStore,但我仍然在http過濾器中使用內存中令牌存儲,如http.inMemory()...所以現在我嘗試獲取auth時修復了此問題使用curl的令牌我沒有得到auth令牌了我可以看到UsernamePasswordAuthenticationFilter在我執行curl時不會被調用,但是當我嘗試通過登錄窗體在我的應用程序中登錄時,我已成功通過身份驗證。我在這裏錯過了什麼?看起來像現在有兩個問題:) – Taimur

+0

你確定你使用curl發送POST嗎? – freakman

+0

是的,我確定我正在用curl進行POST,在我的第一條評論中,我已經解決了上面提到的輔助問題。主要問題仍然如此。 – Taimur

相關問題