javascript
SpringSecurity - 基础篇
文章目錄
- 一、SpringSecurity能做什么
- 二、SpringSecurity替代方案
- 三、權(quán)限管理中的相關(guān)概念
- 四、SpringSecurity 入門(mén)案例
前言:通常我們寫(xiě)http接口是不會(huì)用到SpringSecurity框架,但是當(dāng)我們做一個(gè)后臺(tái)管理系統(tǒng),需要引入權(quán)限控制的時(shí)候需要引入安全框架,這時(shí)候我們有兩個(gè)框架可以選擇SpringSecurity和Shiro。目前主流是使用SpringSecurity。
一、SpringSecurity能做什么
spring security 的核心功能主要包括:
- 認(rèn)證
用戶(hù)認(rèn)證指的是:驗(yàn)證某個(gè)用戶(hù)是否為系統(tǒng)中的合法主體,也就是說(shuō)用戶(hù)能否訪(fǎng)問(wèn)該系統(tǒng)。用戶(hù)認(rèn)證一般要求用戶(hù)提供用戶(hù)名和密碼。系統(tǒng)通過(guò)校驗(yàn)用戶(hù)名和密碼來(lái)完成認(rèn)證過(guò)程。通俗點(diǎn)說(shuō)就是系統(tǒng)認(rèn)為用戶(hù)是否能登錄 - 授權(quán)
用戶(hù)授權(quán)指的是驗(yàn)證某個(gè)用戶(hù)是否有權(quán)限執(zhí)行某個(gè)操作。在一個(gè)系統(tǒng)中,不同用戶(hù)所具有的權(quán)限是不同的。比如對(duì)一個(gè)文件來(lái)說(shuō),有的用戶(hù)只能進(jìn)行讀取,而有的用戶(hù)可以進(jìn)行修改。一般來(lái)說(shuō),系統(tǒng)會(huì)為不同的用戶(hù)分配不同的角色,而每個(gè)角色則對(duì)應(yīng)一系列的權(quán)限。通俗點(diǎn)講就是系統(tǒng)判斷用戶(hù)是否有權(quán)限去做某些事情。
SpringSecurity特點(diǎn):
- 和Spring無(wú)縫整合。
- 全面的權(quán)限控制。
- 專(zhuān)門(mén)為Web開(kāi)發(fā)而設(shè)計(jì)。
舊版本不能脫離Web環(huán)境使用。
新版本對(duì)整個(gè)框架進(jìn)行了分層抽取,分成了核心模塊和Web模塊。單獨(dú)引入核心模塊就可以脫離Web環(huán)境。 - 重量級(jí)。
二、SpringSecurity替代方案
Apache旗下的輕量級(jí)權(quán)限控制框架Shiro。
特點(diǎn):
- 輕量級(jí)。Shiro主張的理念是把復(fù)雜的事情變簡(jiǎn)單。針對(duì)對(duì)性能有更高要求的互聯(lián)網(wǎng)應(yīng)用有更好表現(xiàn)。
- 通用性。
好處:不局限于Web環(huán)境,可以脫離Web環(huán)境使用。
缺陷:在Web環(huán)境下一些特定的需求需要手動(dòng)編寫(xiě)代碼定制。
Spring Security 是 Spring 家族中的一個(gè)安全管理框架,實(shí)際上,在 Spring Boot 出現(xiàn)之前,Spring Security 就已經(jīng)發(fā)展了多年了,但是使用的并不多,安全管理這個(gè)領(lǐng)域,一直是 Shiro 的天下。 相對(duì)于 Shiro,在 SSM 中整合 Spring Security 都是比較麻煩的操作,所以,Spring Security 雖然功能比 Shiro 強(qiáng)大,但是使用反而沒(méi)有 Shiro 多(Shiro 雖然功能沒(méi)有 Spring Security 多,但是對(duì)于大部分項(xiàng)目而言,Shiro 也夠用了)。 自從有了 Spring Boot 之后,Spring Boot 對(duì)于 Spring Security 提供了自動(dòng)化配置方案,可以使用更少的配置來(lái)使用 Spring Security。
三、權(quán)限管理中的相關(guān)概念
-
主體
英文單詞:principal
使用系統(tǒng)的用戶(hù)或設(shè)備或從其他系統(tǒng)遠(yuǎn)程登錄的用戶(hù)等等。簡(jiǎn)單說(shuō)就是誰(shuí)使用系統(tǒng)誰(shuí)就是主體。 -
認(rèn)證
英文單詞:authentication
權(quán)限管理系統(tǒng)確認(rèn)一個(gè)主體的身份,允許主體進(jìn)入系統(tǒng)。簡(jiǎn)單說(shuō)就是“主體”證明自己是誰(shuí)。
籠統(tǒng)的認(rèn)為就是以前所做的登錄操作。 -
授權(quán)
英文單詞:authorization
將操作系統(tǒng)的“權(quán)力”“授予”“主體”,這樣主體就具備了操作系統(tǒng)中特定功能的能力。
所以簡(jiǎn)單來(lái)說(shuō),授權(quán)就是給用戶(hù)分配權(quán)限。
四、SpringSecurity 入門(mén)案例
- 創(chuàng)建一個(gè)SpringBoot工程。pom文件中添加SpringSecurity jar包
- SecurityConfig 配置類(lèi)
- 運(yùn)行項(xiàng)目
訪(fǎng)問(wèn)http://localhost:8080
默認(rèn)的用戶(hù)名:user
密碼在項(xiàng)目啟動(dòng)的時(shí)候在控制臺(tái)會(huì)打印,注意每次啟動(dòng)的時(shí)候密碼都回發(fā)生變化!
以上就是SpringSecurity基礎(chǔ)篇,歡迎大家一鍵三連。
總結(jié)
以上是生活随笔為你收集整理的SpringSecurity - 基础篇的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SpringBoot异常处理ErrorC
- 下一篇: NavicatPremium连接MySQ