shiro 04 許可權認證 2

2021-08-24 23:46:32 字數 1760 閱讀 9680

1.註解式授權

2.jsp標籤授權

詳解看文件

@requiresauthentication要求當前subject 已經在當前的session 中被驗證通過才能被訪問或呼叫。

@requiresguest要求當前的subject 是乙個"guest",也就是說,他們必須是在之前的 session 中沒有被驗證或被記住才 能被訪問或呼叫。

@requirespermissions("account:create") 要求當前的subject 被允許乙個或多個許可權,以便執行註解的方法。

@requiresroles("administrator") 要求當前的subject 擁有所有指定的角色。如果他們沒有,則該方法將不會被執行,而 且authorizationexception 異常將會被丟擲。

@requiresuserrequiresuser註解需要當前的 subject 是乙個應用程式使用者才能被註解的類/例項/方法訪問或呼叫。乙個「應 用程式使用者」被定義為乙個擁有已知身份,或在當前 session 中由於通過驗證被確認,或者在之前 session 中的'rememberme' 服務被記住。

<%@ taglibprefix="shiro"uri=""%> 要新增

guest 標籤:使用者沒有身份驗證時顯示相應資訊,即遊客訪問資訊;

user 標籤:使用者已經身份驗證/記住我登入後顯示相應的資訊;

authenticated 標籤:使用者已經身份驗證通過,即 subject.login 登入成功,不是記住我登入的。

notauthenticated 標籤:使用者沒有身份驗證通過,即沒有呼叫 subject.login 進行登入,包括記住我自動登入 的也屬於未進行身份驗證。

principal 標籤 顯示使用者身份資訊,預設呼叫 subject.getprincipal()獲取,即 primary principal。

hasrole 標籤 如果當前 subject 有角色將顯示 body 體內容。

lacksrole 標籤 如果當前 subject 沒有角色將顯示 body 體內容。

hasanyroles 標籤 如果當前 subject 有任意乙個角色(或的關係)將顯示 body 體內容。

haspermission 標籤 如果當前 subject 有許可權將顯示 body 體內容。

lackspermission 標籤 如果當前 subject 沒有許可權將顯示 body 體內容。 

permissions 對許可權深入理解

單個許可權 query 單個資源

多個許可權 user:query user:add

多值 user:query,add

單個資源所有許可權 user:query,add,update,delete user:*

所有資源某個許可權 *:view

例項級別的許可權控制

單個例項的單個許可權 printer:query:lp7200 printer:print:epsoncolor

所有例項的單個許可權 printer:print:*

所有例項的所有許可權 printer:*:*

單個例項的所有許可權 printer:*:lp7200

單個例項的多個許可權 printer:query,print:lp7200

Shiro許可權認證

shiro的授權以及許可權 關係圖 我們需要在service層中先寫好方法 public inte ce shirouserservice然後imp繼承 service shirouserservice public class shirouserserviceimpl implements shi...

Shiro許可權認證Web

目錄 shiro內建的過濾器講解 filter配置路徑 shiro 資料安全之資料加解密 1.核心過濾器類 defaultfilter,配置哪個路徑對應哪個 進行處理 2.authc org.apache.shiro.web.filter.authc.formauthenticationfilter...

Shiro許可權管理(二) 認證

時隔這麼久終於有時間更新了,今天和大家分享一下shiro的原理。我認為無論是shiro也好,還是其他安全框架也好,其功能主要就分為三部分 認證 授權 加密。下面我們來詳細說明shiro具體是如何實現的。講原理當然離不開結構圖,我們先來看一下shiro的整體結構。由shiro的結構圖我們可以看出shi...