有很多人在利用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進行web項目的開,可以參見視頻:
51CTO:Spring Boot+Bootstrap開發小而完整web項目
騰訊課堂:Spring Boot+Bootstrap開發小而完整web項目
CSDN學院:Spring Boot+Bootstrap開發小而完整web項目
網易雲課堂:Spring Boot+Bootstrap開發小而完整web項目