1. 程式人生 > >SpringBootSecurity學習(04)網頁版登入其它授權和登入處理

SpringBootSecurity學習(04)網頁版登入其它授權和登入處理

其它授權配置

security的配置類中,對所有路徑進行了統一授權配置。但是有的內容我們也需要讓未登入遊客有許可權訪問,比如js,css等靜態檔案,還有一些宣傳頁面等等。這些路徑可以單獨配置:

我們來試驗一些,springboot專案的試圖頁面一般放在resource資料夾下面的templates資料夾下。而靜態檔案一般放在resource資料夾下面的static資料夾下。我們來建立一個test.css檔案,

隨便寫點內容,啟動專案看看效果:

可以看到在未登入的情況下是可以訪問的。也可以弄一個簡單的廣告頁面檢視效果,此處不再演示。關於授權,下面是一些總結:

登入成功處理器

現在我們登入成功的時候直接跳轉到了預設頁面。有時候登入操作要求要記錄一下日誌再跳轉,或者登入成功後執行一些其它邏輯再跳轉,我們可以增加一個登入成功處理器LoginSuccessHandler,這個類需要實現 AuthenticationSuccessHandler 介面,並實現onAuthenticationSuccess方法:

下一步需要在配置類中,配飾成功處理器:

重啟登入可以看到,控制檯成功列印了語句:

但是此時沒有跳轉到預設頁面,這時候預設頁面的配置以及沒有用了,我們需要在成功處理器中手動跳轉:

這時候再登入就可以了。defaultSuccessUrl的配置也可以刪掉了。security不僅可以配置登入成功處理器,還可以配置登入失敗的,可以在http.formLogin()下呼叫failureHandler()配置。登陸失敗處理器需要實現 AuthenticationFailureHandler 接扣,並實現 onAuthenticationFailure方法。不過實際中登入失敗的原因很多,比如亂輸入賬號等等,所以除了特殊情況,一般情況不進行失敗處理。
除了登入的處理還有一些其它的處理,比如許可權不足的處理,手動退出的處理等等,後面會重點討論許可權不足處理器。

程式碼地址:https://gitee.com/blueses/spring-boot-security