使用者登入 html 自定義登入邏輯 013

2021-10-12 17:56:21 字數 1851 閱讀 2296

當 進 行 自 定 義 登 錄 邏 輯 時 需 要 用 到 之 前 講 解 的

userdetailsservice 和 passwordencoder。但是 spring security 要求:當

進行自定義登入邏輯時容器內必須有 passwordencoder 例項。所以不

能直接 new 物件。

1 編寫配置類

新建類 com.bjsxt.config.securityconfig 編寫下面內容

@configuration

public class securityconfig

}

2 自定義邏輯

在 spring security 中實現 userdetailservice 就表示為使用者詳情服

務。在這個類中編寫使用者認證邏輯。

@service

public class userdetailsserviceimpl implements userdetailsservice

//把查詢出來的密碼進行解析,或直接把 password 放到構造方法中。

//理解:password 就是資料庫中查詢出來的密碼,查詢出來的內容不是 123

string password = encoder.encode("123");

return new user(username,password,

authorityutils.commaseparatedstringtoauthoritylist("admin"));

}}

3 檢視效果

重啟專案後,在瀏覽器中輸入賬號:admin,密碼:123。後可以

正確進入到 login.html 頁面。

六、 自定義登入頁面

雖然 spring security 給我們提供了登入頁面,但是對於實際專案

中,大多喜歡使用自己的登入頁面。所以 spring security 中不僅僅提

供了登入頁面,還支援使用者自定義登入頁面。實現過程也比較簡單,

只需要修改配置類即可。

1 編寫登入頁面

別寫登入頁面,登入頁面中

2 修改配置類

修改配置類中主要是設定哪個頁面是登入頁面。配置類需要繼承

websecurityconfigureradapte,並重寫 configure 方法。

successforwardurl()登入成功後跳轉位址

loginpage() 登入頁面

loginprocessingurl 登入頁面表單提交位址,此位址可以不真實存

在。antmatchers():匹配內容

permitall():允許

@configuration

public class securityconfig extends websecurityconfigureradapter

@bean

public passwordencoder getpe()

}

3 編寫控制器

編寫控制器,當使用者登入成功後跳轉 tomain 控制器。編寫完成

控制器後編寫 main.html。頁面中隨意寫上一句話表示 main.html 頁面

內容即可。而之前的/login 控制器方法是不執行的,所以可以刪除了。

@controller

public class logincontroller

public string tomain()

}

django 自定義登入驗證邏輯

本文的django view採用的是基於cbv的模式 django中的登入功能主要涉及到django.contrib.auth這個包,它提供了2個重要的函式 authenticate和login。這個函式接受的乙個收集引數,但至少需要接受username和password這兩個關鍵引數,它完成以下的...

django 自定義登入驗證邏輯

本文的django view採用的是基於cbv的模式 django中的登入功能主要涉及到django.contrib.auth這個包,它提供了2個重要的函式 authenticate和login。這個函式接受的乙個收集引數,但至少需要接受username和password這兩個關鍵引數,它完成以下的...

自定義登入成功和登入處理邏輯

要改變預設的登入成功處理邏輯,只要實現org.springframework.security.web.authentication.authenticationsuccesshandler的onauthenticationsuccess方法 component public class myaut...