一:任務
1.任務
處理使用者資訊獲取邏輯
處理使用者校驗邏輯
處理密碼加密與解密
二: 獲取使用者資訊
1.說明
這個獲取使用者資訊的意思是什麼呢?
就是在登入介面,輸入使用者名稱,然後後台可以接收到,並且,可以自己到資料庫去查詢使用者的資訊了。
security接受使用者的介面如下:
2.程式
這裡沒有寫查詢程式,這裡這裡已經是spring中的乙個bean了,可以匯入dao了
13.登入package com.cao.security.browser;23
import org.slf4j.logger;
4import org.slf4j.logge***ctory;
5import org.springframework.security.core.authority.authorityutils;
6import org.springframework.security.core.userdetails.user;
7import org.springframework.security.core.userdetails.userdetails;
8import org.springframework.security.core.userdetails.userdetailsservice;
9import org.springframework.security.core.userdetails.usernamenotfoundexception;
10import org.springframework.stereotype.component;
11@component
12public
class
myuserdetailsservice implements userdetailsservice
2223 }
控制台:
三:處理使用者校驗邏輯
1.校驗
密碼是否正確,密碼是否過期,賬戶是否被鎖定 等的校驗
userdetails:封裝了使用者登入所需要的所有資訊
2.程式
13.校驗package
com.cao.security.browser;23
import
org.slf4j.logger;
4import
org.slf4j.logge***ctory;
5import
org.springframework.security.core.authority.authorityutils;
6import
org.springframework.security.core.userdetails.user;
7import
org.springframework.security.core.userdetails.userdetails;
8import
org.springframework.security.core.userdetails.userdetailsservice;
9import
org.springframework.security.core.userdetails.usernamenotfoundexception;
10import
org.springframework.stereotype.component;
11@component
12public
class myuserdetailsservice implements
userdetailsservice
3233 }
四:加密與解密
1.說明
使用的類是passwordencoder
encode:用於加密,建議在使用者註冊的時候,呼叫一次,對密碼進行加密。
matches:用於檢查加密的密碼與使用者的密碼是否匹配,是spring呼叫的
matches(charsequence rawpassword, string encodedpassword):rawpassword是原始的密碼,encodedpassword是加密的密碼
2.程式
使用的加密類
10* 覆蓋掉security原有的配置
11*
@author
dell12*
13*/
14@configuration
15public
class browsersecurityconfig extends
websecurityconfigureradapter
2728
@bean
29public
passwordencoder passwordencoder()
32 }
處理加密與解密
13.效果package
com.cao.security.browser;23
import
org.slf4j.logger;
4import
org.slf4j.logge***ctory;
5import
org.springframework.beans.factory.annotation.autowired;
6import
org.springframework.security.core.authority.authorityutils;
7import
org.springframework.security.core.userdetails.user;
8import
org.springframework.security.core.userdetails.userdetails;
9import
org.springframework.security.core.userdetails.userdetailsservice;
10import
org.springframework.security.core.userdetails.usernamenotfoundexception;
11import
org.springframework.security.crypto.password.passwordencoder;
12import
org.springframework.stereotype.component;
13@component
14public
class myuserdetailsservice implements
userdetailsservice
3940 }
說明:每次使用者登入的時候,密碼被加密後都不一樣,但是解密後仍會是乙個密碼。
使用者認證自定義
設定郵箱和使用者名稱和手機號均可登入 authentication backends users.views.custombackend class custombackend modelbackend 自定義使用者驗證規則 defauthenticate self,username none pa...
django使用者認證系統 自定義認證後台8
django auth 應用預設支援使用者名稱 username 進行登入。但是在實踐中,可能還需要郵箱 手機號 身份證號等進行登入,這就需要我們自己寫乙個認證後台,用於驗證使用者輸入的使用者資訊是否正確,從而對擁有正確憑據的使用者進行登入認證。django 對使用者登入的驗證工作均在乙個被稱作認證...
使用者登入 html 自定義登入邏輯 013
當 進 行 自 定 義 登 錄 邏 輯 時 需 要 用 到 之 前 講 解 的 userdetailsservice 和 passwordencoder。但是 spring security 要求 當 進行自定義登入邏輯時容器內必須有 passwordencoder 例項。所以不 能直接 new 物...