2017-09-13 99 views
0

我花了大概一整天的時間試圖讓Spring安全啓動並運行無效的Spring Boot應用程序。我無法找到運行它時運行的代碼的單個示例。使用Spring Security保護Spring Boot Web應用程序不起作用

This示例來自spring.io。以下是我在該示例中看到的內容:

  1. 我從http://localhost:8080開始並查看歡迎屏幕。
  2. 我點擊鏈接http://localhost:8080/hello,它將我重定向到http://localhost:8080/login
  3. 我輸入WebSecurityConfig.java中指定的「用戶」和「密碼」,它將我重定向回歡迎屏幕。我期待被重定向到http://localhost:8080/hello
  4. 當我點擊與http://localhost:8080/hello相同的鏈接時,我再次登錄屏幕。

我試過通過@EnableWebSecurity(debug = true)進行調試,但沒有錯誤。

上述經驗是我下載每個示例時體驗到的經驗。無可否認,我對Spring很陌生,據推測我正在製造一些新手配置錯誤。任何幫助將不勝感激。

回答

0

我下載了代碼並使用maven運行,它工作得很好。登錄後,對於所有後續頁面加載http://localhost:8080/hello加載頁面,而不是再次登錄頁面,除非我註銷。您提到的問題可能是由於您提到它具有流行性的原因(很有可能是因爲您有提及它的可能性)導致您的瀏覽器可能在傳輸默認的JSESSIONID cookie時發生問題(它在第一次訪問頁面時設置並更新(因爲良好的安全實踐通過Spring安全性)在第一次登錄時,對於後續訪問,同一個JSESSIONID被髮送到服務器,並且它是存儲在服務器上的會話對象的關鍵字,其中包含當前通過身份驗證的/授權的用戶。 (其中一個原因可能是它在瀏覽器設置中被禁用),那麼你的應用程序(受Spring安全保護)不會知道你是一個已經過身份驗證的用戶,並會再次向你顯示登錄頁面。例如,對於Chrome,你可以看到cookie設置在設置 - >內容設置 - > Cookies - >允許網站保存和讀取cookie數據(推薦)。您還可以查看cookie頁眉獲得傳遞每頁加載後成功登錄b在相應的瀏覽器中使用開發工具。

相關問題