在學習apache shiro框架之前,我們要清楚apacheshiro框架能夠幫助我們完成什麼功能呢?以下就是apache shiro框架所能做的事情:1、 驗證使用者。
2、 在任何環境下都可以使用sessionapi。
3、 可以使用多個使用者資料庫。例如乙個是oracle資料庫,另外乙個是masql資料庫。
4、 對使用者執行訪問控制,如:判斷使用者是否擁有角色admin或者判斷使用者時候擁有訪問的許可權。
5、 單點登入(sso)功能
apache shiro框架提供的許可權控制的方式:
1、 url***進行許可權控制(框架提供了很多過濾器進行url攔截)
2、 方法註解進行許可權控制(框架提供了在方法上使用的註解,為action建立**物件,進行許可權控制)
3、 頁面標籤許可權控制(框架提供了一套完整標籤,用於根據許可權展示或者隱藏按鈕或者選單)
4、 **級別許可權控制(不常使用)
以下是我從網上找到的乙個shiro框架執行流程圖:
subject:當前使用者
securitymanager:安全管理器,管理所有的使用者,認證、授權等。
realm:安全資料橋,類似於dao,負責訪問安全資料(安全的是資料指使用者名稱 密碼 許可權等。)
shiro框架在專案中的應用:
第一步:在web.xml中配置乙個過濾器**物件。
第二步:在spring配置檔案中配置乙個名稱為shirofilter的bean。shirofilter
org.springframework.web.filter.delegatingfilterproxy
/*
/css/** = anon在配置檔案中我們配置了乙個bosrealm類,這個bosrealm類就是shiro框架的核心部分,下面我們通過登入**來演示一下。/images/** = anon
/js/** = anon
/validatecode.jsp* = anon
/login.jsp = anon
/useraction_login.action = anon
/page_base_staff.action = perms["staff"]
/** = authc
bosrealm類必須繼承authorizingrealm類,它裡面主要有兩個方法,乙個是認證的,另乙個是授權的。
//認證
@override
protected authenticationinfo dogetauthenticationinfo(authenticationtoken token) throws authenticationexception
//將查詢到的使用者儲存到info,返回到許可權管理器中。
******authenticationinfo info = new ******authenticationinfo(user, user.getpassword(), this.getclass().getname());
return info;
}
下面是使用者登入的密碼//授權
@override
protected authorizationinfo dogetauthorizationinfo(principalcollection principals)
在這裡我們可以知道shiro框架是使用丟擲不同的異常來實現認證的。//使用者登入
public string login()else catch (unknownaccountexception e) catch(incorrectcredential***ception e)
}return "index";
}
以上就是關於shiro框架的知識和應用,希望能給各位程式設計師提供一些幫助
apache 設定目錄許可權控制
1。首先要有apache 的認證模組,預設都會安裝。2.編輯httpd.conf檔案 修改工作目錄下的配置,將allowoverride 更改為 authconfig 3.用htpasswd建立乙個密碼檔案,比如檔案名叫 my.pass 建立htpasswd c b my.pass myuserna...
apache 設定目錄許可權控制
1。首先要有apache 的認證模組,預設都會安裝。2.編輯httpd.conf檔案 修改工作目錄下的配置,將allowoverride 更改為authconfig options indexes followsymlinks allowoverride authconfig order allow...
Vue專案的前端許可權控制
本文主要介紹在vue專案中如何進行前端許可權控制。路由許可權 路由許可權就是使用者只能訪問到自己有許可權訪問到的頁面,對於無許可權的頁面可以跳轉到404頁面或者無許可權提示。下面通過兩種方式來實現對路由的許可權控制。1.動態生成路由表 第一種方式是動態生成路由表,前端原始的路由表中只儲存一些基礎的路...