一 .概述
在上一節之中,我們說到shiro使用過濾器完成整個web的許可權管理.
現在我們來看一下shirofilter的一些內容.
二 . 配置內容解析
"我們在shirofilter之中配置了乙個securitymanager,也就是說shirofilter還是使用securitymanager來完成整個shiro的運轉流程.shirofilter
"class="
org.apache.shiro.spring.web.shirofilte***ctorybean
">
"securitymanager
"ref="
securitymanager
">
"loginurl
" value="
/login
">
"unauthorizedurl
" value="
/unan.jsp
">
"successurl
" value="
/web-inf/success.jsp
">
"filterchaindefinitions
">
/login=anon
/js/*
*=anon
/**=authc
我們看到我們配置乙個url,這些url是shirofilter內建的一些配置資訊.
(1)loginurl: 表示當shirofilter發現使用者沒有認證過,自動跳轉到該url之中完成認證操作.
(2)unauthorizedurl : 表示shiro發現使用者訪問了乙個自己無許可權的資源的時候,就會將頁面重定向到未授權頁面.
(3)successurl : 表示使用者登入成功之後重定向的頁面,一般情況我們不使用這個配置.
在shirofilter之中,最為重要的就是filertchain這個概念了.
shiro也是使用過濾鏈的方式完成操作的.
配置的內容為 : url = 過濾器1,過濾器2 這樣的模式.
三 .shirofilter的結構
我們看到上面的類繼承結構,我們需要注意的是下面的幾個過濾器.
(1)nameablefilter: 名稱過濾器,我們二部分的anon這樣的名字就是通過這個過濾器完成的識別工作.
(2)accesscontrollerfilter : 訪問控制過濾器,這個過濾器是我們以後自定義filter需要繼承的filter.
我們來看一下accesscontrollerfilter這個類:
我們只看需要重寫的方法:
public在上面我們配置了四類我們最為常用的過濾器:abstract
我們來看一下上面的兩個方法:
(1)isaccessallowed():這個方法是通過引數完成是否允許成功過濾的方法.
之所以是陣列,就是代表可以有多個.
該方法返回true,表示可以繼續過濾.返回false,表示進入onaccessdenied()方法.
(2)onaccessdenied()方法:當該過濾器不允許過濾的時候會進入該方法之中,我們可以從這個方法之中編寫自己的邏輯.
四 .內建過濾器
在最上面我們編寫了anon這樣的內建過濾器,現在我們介紹一下常用的過濾器.
(1)anno: 匿名方法,表示使用者不需要任何認證(當然也不需要許可權)就能進行訪問.
(2)authc : 表示需要經過認證才能進行訪問.
(3)roles: 表示使用者需要擁有對應的角色才能訪問
(4)perms : 表示使用者需要有對應的許可權才能訪問.
下面我們來演示一下上面最常用的過濾器:
/login=anon
/authc=authc
/user=roles[admin]
/user/add=perms[admin:add]
(1)anon 表示可以匿名訪問
(2)authc : 表示需要認證之後才能訪問
(3)roles:表示需要具有角色才能訪問
(4)perms:表示需要一定的許可權才能訪問.
@restcontroller我們編寫對應的controller.看是否能夠實現url攔截的方式.public
class
filtercontroller
"/authc")
public
string authc()
"/user")
public
string user()
"/user/add")
public
string useradd()
}
因為我們的url都被配置需要一定的許可權才能訪問,現在我們的url就被保護了.
shiro內建過濾器
rest 例子 admins user rest user 根據請求的方法,相當於 admins user perms user method 其中method為post,get,delete等。port 例子 admins user port 8081 當請求的url的埠不是8081是跳轉到sch...
shiro過濾器名稱
功 能配 置 anon 任何使用者傳送的請求都能夠訪問 authc 經過認證的請求可訪問,否則將會將請求重定向到 ini 配置檔案配置的 authc.loginurl 資源,進行認證操作 authc.loginurl login.jsp authc.successurl 認證成功後重定向到此資源 a...
Shiro內建過濾器
執行 web 應用時,shiro會建立一些有用的預設 filter 例項,並自動地在 main 項中將它們置為可用 這些可用的預設的 filter 例項是被 defaultfilter 列舉類定義的 列舉的名稱字段就是可供配置的名稱 這些過濾器分為兩組 u 認證過濾器 anon 不認證也可以訪問 a...