Shiro 菜鳥初試篇

2021-10-01 13:43:25 字數 2699 閱讀 4344

shiro 框架介紹

subject(主體)

shiro中是乙個介面,介面中定義了很多認證授權相關的方法

通過安全管理器進行認證和授權。

securitmanager(安全管理器)

它是shiro的核心

負責對所有的subject進行安全管理。

通過securitmanager可以完成subject的認證、授權等操作。

securitymanager通過authenticator進行認證,通過autuhrizer進行授權,通過sessionmanager進行會話管理。

securitmanager是乙個介面,繼承了authenticator、authorizer、sessionmanager這三個介面。

authenticator(認證器)

對主體進行認證
autuhrizer(授權器)

使用者通過認證器認證通過,在訪問功能時通過授權器判斷使用者是否有此功能的操作許可權。
realm

securitmanager進行安全認證需要通過realm獲取使用者許可權資料  

realm也是乙個介面,有多種實現:

1、將使用者的許可權資訊寫到配置檔案

2、將使用者的許可權資訊儲存到資料庫

realm

從配置檔案或者資料庫等讀取使用者的許可權資訊

sessionmanager(會話管理器)

shiro框架定義了一套會話管理,它不依賴web容器的session

所以shiro可以使用在非web應用上,也可以將分布式應用的會話集中在一點管理

此特性可使它實現單點登入。

sessiondao(會話dao)

是對session會話操作的一套介面,比如要將會話資訊儲存到redis資料庫
cachemanager(快取管理器)

將使用者許可權資料儲存在快取,這樣可以提高效能
cryptography(密碼管理器)

shiro提供了一套加密/解密的元件,方便開發。比如提供常用的雜湊、加/解密等功能
開發環境搭建

建立manven工程,匯入座標

<

!--匯入座標--

>

org.apache.shiro<

/groupid>

shiro-core<

/artifactid>

1.3.2

<

/version>

<

/dependency>

<

!--單元測試--

>

junit<

/groupid>

junit<

/artifactid>

4.12

<

/version>

<

/dependency>

<

!--日誌 log4j2--

>

org.apache.logging.log4j<

/groupid>

log4j-core<

/artifactid>

2.12

.1<

/version>

<

/dependency>

<

!--用與log4j2和slf4j保持橋接--

>

org.apache.logging.log4j<

/groupid>

log4j-slf4j-impl<

/artifactid>

2.12

.1<

/version>

test<

/scope>

<

/dependency>

<

/dependencies>

建立配置檔案

shiro.ini

[users]

zhangsan=

123456

,admin

lisi=

654321

,public

[roles]

admin=product:view,product:create,product:update,product:delete

public

=product:view

配置檔案  shiro.ini  realm 

[users] 主體 認證

zhangsan=

123456

,admin 使用者名稱=密碼,使用者所屬的角色 其中角色可以有多個,用逗號分割

lisi=

654321

,superadmin

[roles] 角色 授權

角色對資源,乙個角色可以有多個資源

讀取配置檔案載入框架

public

class

shirotest

}

2019/12/18學習記錄。

Shiro入門 引言篇

許可權管理包括使用者身份認證和授權兩部分,簡稱認證授權。對於需要訪問控制的資源使用者首先經過身份認證,認證通過後使用者具有該資源的訪問許可權方可訪問 身份認證,就是判斷乙個使用者是否為合法使用者的處理過程。最常用的簡單身份認證方式是系統通過核對使用者輸入的使用者名稱和口令,看其是否與系統中儲存的該使...

初學lucene 菜鳥篇

首先了解一下什麼是全文檢索 舉個例子 比如我們在乙個磁碟上有很多檔案,而有一天我想通過關鍵字搜尋出包含的檔案。如 我們輸入lucene,所有內容含有lucene的檔案都會被檢查出來,這就是全文檢索 鄙人的個人定義 其實,通過上述的例子,我們很容易會想到,關鍵字與這些檔案需要建立乙個相關對映。在luc...

專案規模估算 菜鳥篇

專案估算一般有兩種用途,第一種是用來安排進度計畫,另外一種用來估價,來 或者做決策。估算方法 1.用 行 2.功能點 3.需求條數 4.工作量 安排進度計畫 建議用微軟msf 由底而上 的估算辦法。安排進度計畫,必須進行分解度很高的wbs work breakdown structure 工作分解解...