訂閱
糾錯(cuò)
加入自媒體

Spring Security介紹及實(shí)例驅(qū)動(dòng)學(xué)習(xí)

一、Spring Security介紹

spring security 是基于 spring 的安全框架。它提供全面的安全性解決方案,同時(shí)在 Web 請(qǐng)求級(jí)和方法調(diào)用級(jí)處理身份確認(rèn)和授權(quán)。在 Spring Framework 基礎(chǔ)上,spring security充分利用了依賴注入(DI)和面向切面編程(AOP)功能,為應(yīng)用系統(tǒng)提供聲明式的安全訪問控制功能,減少了為企業(yè)系統(tǒng)安全控制編寫大量重復(fù)代碼的工作。是一個(gè)輕量級(jí)的安全框架。它與Spring MVC 有很好地集成.

核心功能:

認(rèn)證、驗(yàn)證

原理:

基于 Filter , Servlet, AOP 實(shí)現(xiàn)身份認(rèn)證和權(quán)限驗(yàn)證

二、實(shí)例驅(qū)動(dòng)學(xué)習(xí)

使用的框架和技術(shù):

spring boot 2.0.6 版本

spring security 5.0.9 版本

maven 3 以上

jdk8 以上

idea 2019

案例(使用內(nèi)存中的用戶信息)

1)使用:WebSecurityConfigurerAdapter 控制安全管理的內(nèi)容。

需要做的使用:繼承 WebSecurityConfigurerAdapter,重寫方法。實(shí)現(xiàn)自定義的認(rèn)證信息。重寫下面的方法。

protected void configure(AuthenticationManagerBuilder auth)

2)spring security 5 版本要求密碼比較加密,否則報(bào)錯(cuò)

java.lang.IllegalArgumentException: There is no PasswordEncoder

mapped for the id "null"

實(shí)現(xiàn)密碼加密:

1)創(chuàng)建用來加密的實(shí)現(xiàn)類(選擇一種加密的算法)

@Bean

public PasswordEncoder passwordEncoder(){

//創(chuàng)建 PasawordEncoder 的實(shí)現(xiàn)類, 實(shí)現(xiàn)類是加密算法

return new BCryptPasswordEncoder();

2)給每個(gè)密碼加密

PasswordEncoder pe = passwordEncoder();

pe.encode("123456")

注解:

1. @Configuration :表示當(dāng)前類是一個(gè)配置類(相當(dāng)于是 spring 的 xml

配置文件),在這個(gè)類方法的返回值是 java 對(duì)象,這些對(duì)象放入到

spring 容器中。

2. @EnableWebSecurity:表示啟用 spring security 安全框架的功能

3. @Bean:把方法返回值的對(duì)象,放入到 spring 容器中。

三、基于角色的權(quán)限

認(rèn)證和授權(quán):

authentication:認(rèn)證,認(rèn)證訪問者是誰。 一個(gè)用戶或者一個(gè)其他系統(tǒng)是不是當(dāng)前要訪問的系統(tǒng)中的有效用戶。

authorization:授權(quán),訪問者能做什么

RBAC 是什么:

RBAC 是基于角色的訪問控制(Role-Based Access Control )在 RBAC 中,權(quán)限與角色相關(guān)聯(lián),用戶通過成為適當(dāng)角色的成員而得到這些角色的權(quán)限。這就極大地簡(jiǎn)化了權(quán)限的管理。這樣管理都是層級(jí)相互依賴的,權(quán)限賦予給角色,而把角色又賦予用戶,這樣的權(quán)限設(shè)計(jì)很清楚,管理起來很方便。

RBAC: 用戶是屬于角色的, 角色擁有權(quán)限的集合。 用戶屬于某 個(gè)角色, 他就具有角色對(duì)應(yīng)的權(quán)限。

RBAC 設(shè)計(jì)中的表:

1.用戶表: 用戶認(rèn)證(登錄用到的表)

用戶名,密碼,是否啟用,是否鎖定等信息。

2.角色表:定義角色信息

角色名稱, 角色的描述。

3.用戶和角色的關(guān)系表: 用戶和角色是多對(duì)多的關(guān)系。

一個(gè)用戶可以有多個(gè)角色, 一個(gè)角色可以有多個(gè)用戶。

4.權(quán)限表, 角色和權(quán)限的關(guān)系表

角色可以有哪些權(quán)限。

定義用戶,角色,角色關(guān)系表:

sys_user:用戶信息表

sys_role:角色表

sys_user_role: 用戶-角色關(guān)系表

image.png

以上Spring Security全套視頻資料可評(píng)論/私信獲取~~~


聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評(píng)論

暫無評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)