爲什麼Spring Security看不見登錄失敗或者註銷的提示

有很多人在利用Spring Security進行角色權限設計開發時,一般發現正常登錄時沒問題,但是註銷、或者用戶名時,直接就回到登錄頁面了,在登錄頁面上看不見任何提示信息,如“用戶名/密碼有誤”或“註銷成功”。

那麼如何做呢?很簡單。

1、自定義安全配置類(繼承自WebSecurityConfigurerAdapter)

在我們的自定義安全配置類中,需要做必要的設置,如下圖:
爲什麼Spring Security看不見登錄失敗或者註銷的提示

上圖中標紅框的部分很關鍵:

  • failureUrl("/login?error=true"):這裏面的“?error=true”很關鍵,如果沒有這個,那麼你登錄失敗的消息並不會被系統傳遞出去;
  • logout():一定要配置logout(),要不然系統在註銷時,一是不能自動跳轉到登錄頁面,二是系統也不會把註銷的消息傳遞出去。

2、登錄頁面login.html

已經在Spring Security中的自定義配置類中做了如上的配置後,那麼只需在頁面中添加必要的判斷信息就行了,見下圖:
爲什麼Spring Security看不見登錄失敗或者註銷的提示

以上代碼很簡單,大家只需注意兩點就行:

  • 在頁面中通過xmlns屬性定義Thymeleaf命名空間,同時定義Thymeleaf針對Spring Security的擴展,見上面的第一個紅框;
  • 通過Thymeleaf的語法,對接收到的消息進行判斷,param.logout:判斷是否是註銷,param.error:判斷是否登錄失敗,從而進行相應的顯示就行了,見上面的第二個紅框。

    大家如果對Spring Boot中如何利用Spring Security進行詳細的角色權限模塊開發感興趣,想了解更多的詳情,可以參見我的視頻:https://edu.51cto.com/sd/091c7

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章