一 . 概述
在shiro之中有三種方式進行許可權的管理,
(1)硬編碼的方式,如subject.hasrole()這樣的方式在**之中織入.
(2)使用註解的方式進行許可權管理
(3)使用jsp標籤的方式進行許可權控制
本節,我們使用註解的方式進行配置.
二 .環境的配置
"lifecyclebeanpostprocessor
"class="
org.apache.shiro.spring.lifecyclebeanpostprocessor
">
class="
org.springframework.aop.framework.autoproxy.defaultadvisorautoproxycreator
"depends-on="
lifecyclebeanpostprocessor
"/>
class="
org.apache.shiro.spring.security.interceptor.authorizationattributesourceadvisor
">
"securitymanager
"ref="
securitymanager
"/>
上面的配置需要在我們的spring.xml之中配置.
說明,如果我們想要攔截controller,那麼我們就需要將此配置放置在springmvc.xml的配置檔案之中.
如果我們想要攔截service的**,我們就需要將此配置檔案放置到spring.xml檔案之中.
總的來說,這個是由spring的父子容器造成的.
三 .測試**
@restcontrollerpublic
class
advicecontroller
}
上面的方式是需要認證之後才能進行訪問的,當我們沒有認證的時候,我們就不能進行訪問.
此時,會丟擲乙個異常的資訊來.
我們可以做乙個全域性的異常***,將頁面重定向到登入頁面.
四.總結
完成shiro的註解配置十分的簡單,只需要配置幾個bean就能完成.
但是我們思考這麼乙個問題,我們使用註解其實就是硬編碼.只不過編寫註解變得簡單了.
因此,我們拒絕使用角色的註解,而是使用許可權的註解.
這樣我們可以通過分配許可權來完成許可權的動態分配,如果分配的是角色,那麼我們這種動態性就不存在了.
shiro註解許可權控制 5個許可權註解
shiro共有5個註解,接下來我們就詳細說說吧 使用方法 shiro的認證註解處理是有內定的處理順序的,如果有個多個註解的話,前面的通過了會繼續檢查後面的,若不通過則直接返回,處理順序依次為 與實際宣告順序無關 requiresroles requirespermissions requiresau...
shiro註解許可權控制 5個許可權註解
shiro共有5個註解,接下來我們就詳細說說吧 requiresauthentication 使用該註解標註的類,例項,方法在訪問或呼叫時,當前subject必須在當前session中已經過認證。requiresguest 使用該註解標註的類,例項,方法在訪問或呼叫時,當前subject可以是 gu...
shiro許可權註解
shiro許可權註解 可以用在controller層對應的方法上 service層對應的方法上 1 requiresauthentication 表示當前subject已經通過login進行了身份驗證 即subject.isauthenticated 返回true。2 requiresuser 表示...