Shiro框架的工作流程可以簡(jiǎn)單描述為以下幾個(gè)步驟:
主體(Subject)身份驗(yàn)證:應(yīng)用程序通過Shiro的Subject對(duì)象進(jìn)行用戶身份驗(yàn)證。Subject代表當(dāng)前正在與應(yīng)用程序交互的用戶,可以是一個(gè)人、一個(gè)設(shè)備或其他實(shí)體。開發(fā)人員使用Subject對(duì)象來進(jìn)行身份驗(yàn)證操作,如登錄認(rèn)證。
身份驗(yàn)證器(Authentication):在身份驗(yàn)證過程中,Shiro使用配置的身份驗(yàn)證器(Authentication器)來驗(yàn)證用戶的身份憑據(jù),比如用戶名和密碼。身份驗(yàn)證器可以根據(jù)配置使用不同的驗(yàn)證方式,比如基于用戶名/密碼的驗(yàn)證、基于令牌的驗(yàn)證等。驗(yàn)證成功后,Subject對(duì)象將被關(guān)聯(lián)到已驗(yàn)證的身份。
授權(quán)(Authorization):一旦用戶身份驗(yàn)證成功,Shiro進(jìn)行授權(quán)操作來確定用戶是否具有執(zhí)行特定操作或訪問特定資源的權(quán)限。授權(quán)過程涉及角色(Role)和權(quán)限(Permission)的管理。角色表示一組權(quán)限的集合,而權(quán)限則是針對(duì)特定操作或資源的權(quán)限定義。Shiro提供了一套靈活的授權(quán)機(jī)制,可以通過角色和權(quán)限進(jìn)行細(xì)粒度的訪問控制。

會(huì)話管理(Session Management):Shiro負(fù)責(zé)管理用戶會(huì)話,以跟蹤用戶的狀態(tài)和活動(dòng)。會(huì)話是指用戶在應(yīng)用程序中的交互周期,可以是Web應(yīng)用程序中的HTTP會(huì)話或其他類型的會(huì)話。Shiro提供了會(huì)話管理功能,包括會(huì)話的創(chuàng)建、跟蹤、過期處理等。它可以將會(huì)話信息存儲(chǔ)在內(nèi)存中或持久化到后端存儲(chǔ)。
加密和哈希(Cryptography):Shiro提供了密碼加密和哈希功能,用于存儲(chǔ)用戶的敏感信息,如密碼。開發(fā)人員可以配置使用不同的加密算法和哈希算法來保護(hù)用戶憑據(jù)的安全性。
緩存(Caching):為了提高性能,Shiro支持緩存機(jī)制來緩存重要的安全數(shù)據(jù),如授權(quán)信息。緩存可以減少對(duì)后端存儲(chǔ)的頻繁訪問,提高系統(tǒng)的響應(yīng)速度和吞吐量。
整體而言,Shiro框架的工作流程可以概括為身份驗(yàn)證、授權(quán)、會(huì)話管理和安全數(shù)據(jù)的加密與緩存。這些步驟使得開發(fā)人員可以輕松地實(shí)現(xiàn)應(yīng)用程序的安全功能,并確保只有經(jīng)過身份驗(yàn)證和授權(quán)的用戶能夠訪問所需的資源和執(zhí)行相應(yīng)的操作。