Apache Shiro 是一個架構,可用于身份驗證和授權。本文提供了幾個示例用來展示如何在 Java™ 應用程式中使用 Shiro 并給出了如何在一個 Grails web 應用程式中使用它的概述。為了從本文中最大限度地受益,您應該習慣于建立 Java 應用程式并安裝了如下的幾個元件:
- Java 1.6 JDK
- Grails(用來運作這些 web 應用程式示例)
常用縮略詞
- API: 應用程式程式設計接口
- HTTP: 超文本傳輸協定
- JAR: Java 檔案檔案
- JDBC: Java 資料庫連接配接
- JDK: Java 開發工具包
- LDAP:輕量級目錄通路協定
身份驗證和授權
在對系統進行安全保障時,有兩個安全性元素非常重要:身份驗證和授權。雖然這兩個術語代表的是不同的含義,但出于它們在應用程式安全性方面各自的角色考慮,它們有時會被交換使用。
身份驗證 指的是驗證使用者的身份。在驗證使用者身份時,需要确認使用者的身份的确如他們所聲稱的那樣。在大多數應用程式中,身份驗證是通過使用者名和密碼的組合完成的。隻要使用者選擇了他人很難猜到的密碼,那麼使用者名和密碼的組合通常就足以确立身份。但是,還有其他的身份驗證方式可用,比如指紋、證書和生成鍵。
一旦身份驗證過程成功地建立起身份,授權 就會接管以便進行通路的限制或允許。 是以,有這樣的可能性:使用者雖然通過了身份驗證可以登入到一個系統,但是未經過授權,不準做任何事情。還有一種可能是使用者雖然具有了某種程度的授權,卻并未經過身份驗證。