Shiro認證和授權學習記錄

2021-10-08 23:08:07 字數 3556 閱讀 1821

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...