鍍金池/ 教程/ Java/ Shiro術(shù)語
Shiro特點(diǎn)
Shiro Web應(yīng)用程序
Shiro教程
Shiro術(shù)語
Shiro是什么?
Shiro 10分鐘教程
Shiro快速入門教程

Shiro術(shù)語

請花2分鐘閱讀和理解Shiro中的術(shù)語 - 這是非常重要的。這里的術(shù)語和概念在文檔中的任何地方都被引用,并且將大大簡化您對Shiro和一般的安全性的理解。

因?yàn)槭褂昧艘恍┠赡懿惶靼椎男g(shù)語,所以安全可能真的令人很困惑。下面將通過一些核心概念來更容易地理解Shiro常用的知識,在接下來的章節(jié)中會看到Shiro API如何反映它們:

  • 認(rèn)證
    認(rèn)證是驗(yàn)證主體身份的過程 - 基本上證明有人真的是他們所說的他們是誰那樣。 當(dāng)認(rèn)證成功時(shí),應(yīng)用程序可以信任保證為應(yīng)用程序期望的對象。
  • 授權(quán)
    授權(quán),也稱為訪問控制,是確定用戶/主題是否被允許做某事的過程。 通常通過檢查和解釋主體的角色和權(quán)限(見下文),然后允許或拒絕對所請求的資源或功能的訪問來實(shí)現(xiàn)。
  • 密碼
    密碼是用于執(zhí)行加密或解密的算法。 該算法通常依賴于稱為密鑰的一條信息。 并且加密基于密鑰而變化的,因此如果沒有它,則解密是非常困難的。
    密碼有不同的變化。 塊密碼對通常具有固定大小的符號塊進(jìn)行工作,而流密碼對連續(xù)的符號流進(jìn)行工作。 對稱密碼使用相同的密鑰進(jìn)行加密和解密,而非對稱密碼使用不同的密鑰。 如果非對稱密碼中的密鑰不能從另一個(gè)密鑰導(dǎo)出,則可以共享創(chuàng)建公鑰/私鑰對。
  • 憑據(jù)
    證書是驗(yàn)證用戶/主體的身份的一條信息。 在認(rèn)證嘗試期間,一個(gè)(或多個(gè))憑證與主體一起提交,以驗(yàn)證提交它們的用戶/主題實(shí)際上是關(guān)聯(lián)的用戶。 證書通常是非常秘密的東西,只有特定用戶/主體知道,諸如:密碼或PGP密鑰或生物特征屬性或類似機(jī)制。
    這個(gè)想法是,對于主體,只有一個(gè)人會知道正確的證書與該主體“配對”。 如果當(dāng)前用戶/主題提供與存儲在系統(tǒng)中的正確憑證相匹配的正確憑證,則系統(tǒng)可以假定并相信當(dāng)前用戶/主題真正是他們所說的。 信任程度隨著更安全的憑證類型(例如生物特征簽名>密碼)而增加。
  • 加密
    密碼術(shù)是通過隱藏信息或?qū)⑵滢D(zhuǎn)換為廢話來保護(hù)信息免于不受歡迎的訪問的做法,因此沒有人能讀取它。 Shiro專注于加密技術(shù)的兩個(gè)核心元素:使用公鑰或私鑰加密數(shù)據(jù)的密碼,以及對密碼等數(shù)據(jù)進(jìn)行不可逆加密的哈希(也稱為消息摘要)。
  • 哈希
    哈希函數(shù)是輸入源(有時(shí)稱為消息)的單向,不可逆轉(zhuǎn)換,轉(zhuǎn)換為編碼的哈希值,有時(shí)稱為消息摘要。 它通常用于密碼,數(shù)字指紋或具有底層字節(jié)數(shù)組的數(shù)據(jù)。
  • 權(quán)限
    權(quán)限在Shiro中解釋:它是一個(gè)描述應(yīng)用程序中的原始功能的語句。 權(quán)限是安全策略中的最低級別構(gòu)造。 他們只定義了應(yīng)用程序可以做什么。不描述“誰”能夠執(zhí)行的操作。 權(quán)限只是一個(gè)行為的聲明,沒有更多。
    一些權(quán)限的示例:

    • 打開一個(gè)文件
    • 查看’/user/list‘網(wǎng)頁
    • 打印文檔
    • 刪除一個(gè)用戶等
  • 主體
    主體是應(yīng)用程序用戶(主題)的任何標(biāo)識屬性。 “標(biāo)識屬性”可以是對您的應(yīng)用程序有意義的任何內(nèi)容 - 用戶名,姓氏,給定名稱,社會安全號碼,用戶ID等。Shiro還引用了稱為主體的主要主體的東西。主要主體是在整個(gè)應(yīng)用程序中唯一標(biāo)識主題的任何主體。 理想的主要主體是用戶名或用戶ID,它是RDBMS用戶表主鍵。 應(yīng)用程序中的用戶(主題)只有一個(gè)主要主體。

  • 領(lǐng)域
    領(lǐng)域是可以訪問特定于應(yīng)用程序的安全數(shù)據(jù)(如用戶,角色和權(quán)限)的組件。 它可以被認(rèn)為是一個(gè)安全特定的DAO(數(shù)據(jù)訪問對象)。 領(lǐng)域?qū)⑦@種特定于應(yīng)用程序的數(shù)據(jù)轉(zhuǎn)換為Shiro理解的格式,所以Shiro可以提供一個(gè)易于理解的主題編程API,無論存在多少數(shù)據(jù)源或應(yīng)用程序特定的數(shù)據(jù)。
    領(lǐng)域通常與數(shù)據(jù)源(例如關(guān)系數(shù)據(jù)庫,LDAP目錄,文件系統(tǒng)或其他類似資源)具有1對1關(guān)聯(lián)。 因此,領(lǐng)域接口的實(shí)現(xiàn)使用數(shù)據(jù)源特定的API來發(fā)現(xiàn)。諸如JDBC,文件IO,Hibernate或JPA或任何其他數(shù)據(jù)訪問API的授權(quán)數(shù)據(jù)(角色,權(quán)限等)。

  • 角色
    角色的定義可以根據(jù)您與誰交談。 在許多應(yīng)用程序中,人們使用隱含地定義安全策略的模糊概念。 Shiro更喜歡將角色解釋為一個(gè)命名的權(quán)限集合。 這是一個(gè)應(yīng)用程序唯一名稱,聚合一個(gè)或多個(gè)權(quán)限聲明。
    這是一個(gè)比許多應(yīng)用程序使用的隱式更具體的定義。 如果你選擇讓數(shù)據(jù)模型反映Shiro的假設(shè),你會發(fā)現(xiàn)將有更多的權(quán)力來控制安全策略。

  • 會話
    會話是在一段時(shí)間內(nèi)與軟件系統(tǒng)交互的單個(gè)用戶/主題相關(guān)聯(lián)的有狀態(tài)數(shù)據(jù)上下文。 在主題使用應(yīng)用程序時(shí),可以從會話中添加/讀取/刪除數(shù)據(jù),并且應(yīng)用程序可以稍后在必要時(shí)使用此數(shù)據(jù)。 當(dāng)用戶/主題注銷應(yīng)用程序或由于不活動導(dǎo)致超時(shí)時(shí),會話將終止。
    對于熟悉HttpSession的人來說,Shiro會話的目的也是一樣的,除了Shiro會話可以在任何環(huán)境中使用,即使沒有Servlet容器或EJB容器可用。

  • 主題
    主題只是一個(gè)奇特的安全術(shù)語,基本上意味著應(yīng)用程序用戶的安全特定的“視圖”。 主體并不總是需要反映一個(gè)人,雖然 - 它可以表示一個(gè)外部進(jìn)程調(diào)用您的應(yīng)用程序,或者可能是一個(gè)守護(hù)進(jìn)程系統(tǒng)帳戶在一段時(shí)間間歇地執(zhí)行某些事情(如cron作業(yè))。 它基本上是與應(yīng)用程序做某事的任何實(shí)體的表示。


上一篇:Shiro教程下一篇:Shiro特點(diǎn)