subject:使用者主體(操作扔給securitymanager)
securitymanager:安全管理器(關聯realm)
realm:shiro和資料庫打交道的
>
>
org.apache.shirogroupid
>
>
shiro-springartifactid
>
>
1.4.0version
>
dependency
>
自定義realm類繼承authorizingrealm,並實現其兩個方法(認證和授權)。
public
class
userrealm
extends
authorizingrealm
/** * 執行認證邏輯
*/@override
protected authenticationinfo dogetauthenticationinfo
(authenticationtoken arg0)
throws authenticationexception
}
@configuration
public
class
shiroconfig
/** * 建立defaultwebsecuritymanager
*/@bean
(name=
"securitymanager"
)public defaultwebsecuritymanager getdefaultwebsecuritymanager
(@qualifier
("userrealm"
)userrealm userrealm)
/** * 建立realm
*/@bean
(name=
"userrealm"
)public userrealm getrealm()
}
@configuration
public
class
shiroconfig
/** * 建立defaultwebsecuritymanager
*/@bean
(name=
"securitymanager"
)public defaultwebsecuritymanager getdefaultwebsecuritymanager
(@qualifier
("userrealm"
)userrealm userrealm)
/** * 建立realm
*/@bean
(name=
"userrealm"
)public userrealm getrealm()
}
/**
* 登入邏輯處理
*/("/login"
)public string login
(string name,string password,model model)
catch
(unknownaccountexception e)
catch
(incorrectcredential***ception e)
}
public
class
userrealm
extends
authorizingrealm
/** * 執行認證邏輯
*/@override
protected authenticationinfo dogetauthenticationinfo
(authenticationtoken arg0)
throws authenticationexception
//2.判斷密碼
return
new******authenticationinfo(""
,password,"")
;}}
整合mybatis動態實現認證
實體類和持久層,業務層**自己實現
public
class
userrealm
extends
authorizingrealm
@autowired
private userservice userserivce;
/** * 執行認證邏輯
*/@override
protected authenticationinfo dogetauthenticationinfo
(authenticationtoken arg0)
throws authenticationexception
//2.判斷密碼
return
new******authenticationinfo(""
,user.
getpassword()
,"");
}}
/**
* 建立shirofilte***ctorybean
*/@bean
public shirofilte***ctorybean getshirofilte***ctorybean
(@qualifier
("securitymanager"
)defaultwebsecuritymanager securitymanager)
/**
* 執行授權邏輯
*/@override
protected authorizationinfo dogetauthorizationinfo
(principalcollection arg0)
首先自行再資料庫中建立user表時候新增perms欄位,寫入資料。並進行spring開發相關的配置。
我們使用兩個user分別為xiaoming(add許可權),xiaohong(update許可權)
/**
* 建立shirofilte***ctorybean
*/@bean
public shirofilte***ctorybean getshirofilte***ctorybean
(@qualifier
("securitymanager"
)defaultwebsecuritymanager securitymanager)
/**
* 執行授權邏輯
*/@override
protected authorizationinfo dogetauthorizationinfo
(principalcollection arg0)
shiro認證授權
1.shiro配置類 1.1需要配置什麼?建立乙個shirofilte ctorybean物件,檢測認證 向bean中傳入securitymanager物件 沒有認證的時候應該訪問哪個url位址 setloginurl 哪些資源是可以被匿名訪問的 setfilterchaindefinitionma...
shiro 實現認證授權
一.認證和授權的概念 認證 authentication show it,you are you 授權 authoriziation through it,you can do sth 二.shiro中的認證與授權 authenticatingrealm shiro中的用於進行認證的領域,實現dog...
shiro認證授權過程
nclick formsubmit login.action self public string login throws exception subject.login token 當這一 執行時,就會自動跳入到authrealm中認證方法 protected authenticationinf...