有很多人在利用Spring Security進行角色權限設計開發時,一般發現正常登錄時沒問題,但是註銷、或者用戶名時,直接就回到登錄頁面了,在登錄頁面上看不見任何提示信息,如“用戶名/密碼有誤”或“註銷成功”。
那麼如何做呢?很簡單。
1、自定義安全配置類(繼承自WebSecurityConfigurerAdapter)
在我們的自定義安全配置類中,需要做必要的設置,如下圖:
上圖中標紅框的部分很關鍵:
- failureUrl("/login?error=true"):這裏面的“?error=true”很關鍵,如果沒有這個,那麼你登錄失敗的消息並不會被系統傳遞出去;
- logout():一定要配置logout(),要不然系統在註銷時,一是不能自動跳轉到登錄頁面,二是系統也不會把註銷的消息傳遞出去。
2、登錄頁面login.html
已經在Spring Security中的自定義配置類中做了如上的配置後,那麼只需在頁面中添加必要的判斷信息就行了,見下圖:
以上代碼很簡單,大家只需注意兩點就行:
- 在頁面中通過xmlns屬性定義Thymeleaf命名空間,同時定義Thymeleaf針對Spring Security的擴展,見上面的第一個紅框;
-
通過Thymeleaf的語法,對接收到的消息進行判斷,param.logout:判斷是否是註銷,param.error:判斷是否登錄失敗,從而進行相應的顯示就行了,見上面的第二個紅框。
大家如果對Spring Boot中如何利用Spring Security進行詳細的角色權限模塊開發感興趣,想了解更多的詳情,可以參見我的視頻:https://edu.51cto.com/sd/091c7