更新時(shí)間:2023-02-07 15:32:45 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1400次
1.Apache Shiro的三大核心組件:
Authentication和Authorization:
在Shiro的用戶權(quán)限認(rèn)證過(guò)程中其通過(guò)兩個(gè)方法來(lái)實(shí)現(xiàn):
其他組件:
除了上述幾個(gè)組件外:Shiro還有幾個(gè)組件:
2.Shiro的優(yōu)點(diǎn):
3.比較Spring Security和Apache Shiro:
4.Shiro如何自實(shí)現(xiàn)認(rèn)證:
Shiro的認(rèn)證過(guò)程由Realm執(zhí)行,SecurityManager會(huì)調(diào)用Realm包下的getAuthenticationInfo(AuthenticationToken token)方法。
實(shí)際開(kāi)發(fā)中,通常提供org.apache.shiro.realm.AuthenticatingRealm 的實(shí)現(xiàn)類,并在該實(shí)現(xiàn)類中提供doGetAuthenticationInfo(AuthenticationToken token)方法的具體實(shí)現(xiàn)。
5.Shiro如何實(shí)現(xiàn)自實(shí)現(xiàn)授權(quán):
實(shí)際開(kāi)發(fā)中,通常提供org.apache.shiro.realm.AuthenticatingRealm 的實(shí)現(xiàn)類,并提供doGetAuthorizationInfo(PrincipalCollection principals)方法的具體實(shí)現(xiàn)。
配置ShiroConfig
創(chuàng)建一個(gè)方法并給注解@Bean將其交給Spring進(jìn)行管理,返回類型為ShiroFilterFactoryBean類型 參數(shù)為SecurityManager securityManager
在方法中new ShiroFilterFactoryBean(),運(yùn)用setSecurityManager()把securityManager傳進(jìn)去進(jìn)行設(shè)置
運(yùn)用setLoginUrl讓用戶在訪問(wèn)某個(gè)接口需要登錄時(shí)跳轉(zhuǎn)頁(yè)面,運(yùn)用setUnauthorizedUrl讓用戶登錄后沒(méi)有權(quán)限時(shí)跳轉(zhuǎn)頁(yè)面
new LinkedHashMap<>();把相關(guān)路徑所需的權(quán)限進(jìn)行設(shè)置,之后把其交給setFilterChainDefinitionMap()中。
創(chuàng)建一個(gè)方法并給注解@Bean將其交給Spring進(jìn)行管理,返回類型為SecurityManager類型的securityManager()方法,new DefaultWebSecurityManager();
因其securityManager可以管理各種組件,所以可以綁定各種自定義的組件,設(shè)置綁定realm推薦放到最后,不然某些情況下不生效。
6.Shiro有哪些組件:
Authentication:身份認(rèn)證/登錄,驗(yàn)證用戶是不是擁有相應(yīng)的身份。
Authorization:授權(quán),即權(quán)限驗(yàn)證,驗(yàn)證某個(gè)已認(rèn)證的用戶是否擁有某個(gè)權(quán)限
Session Manager:會(huì)話管理,即用戶登錄后就是一次會(huì)話,在沒(méi)有退出之前,它的所有信息都在會(huì)話中;會(huì)話可以是普通JavaSE環(huán)境的,也可以是如Web環(huán)境的;
Crypotgraphy:加密,保護(hù)數(shù)據(jù)的安全行,如密碼加密存儲(chǔ)到數(shù)據(jù)庫(kù),而不是明文存儲(chǔ);
Web Support:Web支持,可以非常容易的集成到Web環(huán)境。
Remember me:記住我,這是一個(gè)非常常見(jiàn)的功能,即一次登錄后,下次再來(lái)的話不用登錄了。
以上就是“快問(wèn)快答之shiro框架面試題”,你能回答上來(lái)嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。
相關(guān)閱讀
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)