黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

面試題首頁 > Java權(quán)限管理框架面試題

Shiro面試題

001什么是權(quán)限?

①權(quán)限管理:一般指根據(jù)系統(tǒng)設(shè)置的安全策略或者安全規(guī)則,用戶可以訪問而且只能訪問自己被授權(quán)的資源,不多不少。權(quán)限管理幾乎出現(xiàn)在任何系統(tǒng)里面,只要有用戶和密碼的系統(tǒng)。
②權(quán)限管理分類:
訪問權(quán)限:管理員有增刪改查權(quán)限,普通用戶只有查詢權(quán)限。
數(shù)據(jù)權(quán)限:管理員可以看到所有員工信息,但是員工只能看到自己的信息。

002什么是認(rèn)證?

身份認(rèn)證,就是判斷一個(gè)用戶是否為合法用戶的處理過程。最常用的簡單身份認(rèn)證方式是系統(tǒng)通過核對用戶輸入的用戶名和密碼,看其是否與系統(tǒng)中存儲的該用戶的用戶名和密碼一致,來判斷用戶身份是否正確。例如:密碼登錄,手機(jī)短信驗(yàn)證、三方授權(quán)等。

003Shiro框架用過嗎?

Apache Shiro是一個(gè)強(qiáng)大且易用的Java安全框架,能夠非常清晰的處理認(rèn)證、授權(quán)、管理會(huì)話以及密碼加密。使用Shiro的易于理解的API,您可以快速、輕松地獲得任何應(yīng)用程序,從最小的移動(dòng)應(yīng)用程序到最大的網(wǎng)絡(luò)和企業(yè)應(yīng)用程序。

004Shiro的優(yōu)點(diǎn)?

1.簡單的身份驗(yàn)證,支持多種數(shù)據(jù)源
2.對角色的簡單授權(quán),支持細(xì)粒度的授權(quán)(方法)
3.支持一級緩存,以提升應(yīng)用程序的性能
4.內(nèi)置基于POJO的企業(yè)會(huì)話管理,適用于web及非web環(huán)境
5.非常簡單的API加密
6.不跟任何框架綁定,可以獨(dú)立運(yùn)行

005Shiro的核心組件?

Subject:主體,代表了當(dāng)前“用戶”,這個(gè)用戶不一定是一個(gè)具體的人,與當(dāng)前應(yīng)用交互的任何東西都是Subject,如爬蟲、機(jī)器人等;即一個(gè)抽象概念;所有Subject都綁定到SecurityManager,與Subject的所有交互都會(huì)委托給SecurityManager;可以把Subject認(rèn)為是一個(gè)門面;SecurityManager才是實(shí)際的執(zhí)行者。
SecurityManager:安全管理器,即所有與安全有關(guān)的操作都會(huì)與SecurityManager交互,且它管理著所有Subject;可以看出它是shiro的核心, SecurityManager相當(dāng)于spring mvc中的dispatcherServlet前端控制器。
Realm:域,shiro從Realm獲取安全數(shù)據(jù)(如用戶、角色、權(quán)限),就是說SecurityManager要驗(yàn)證用戶身份,那么它需要從Realm獲取相應(yīng)的用戶進(jìn)行比較以確定用戶身份是否合法;也需要從Realm得到用戶相應(yīng)的角色/權(quán)限進(jìn)行驗(yàn)證用戶是否能進(jìn)行操作;可以把Realm看成DataSource,即安全數(shù)據(jù)源。

006Shiro認(rèn)證執(zhí)行流程?

1)通過ini配置文件創(chuàng)建securityManager
2)調(diào)用subject.login方法主體提交認(rèn)證,提交的token
3)securityManager進(jìn)行認(rèn)證,securityManager最終由ModularRealmAuthenticator進(jìn)行認(rèn)證。
4)ModularRealmAuthenticator調(diào)用IniRealm(給realm傳入token) 去ini配置文件中查詢用戶信息
5)IniRealm根據(jù)輸入的token(UsernamePasswordToken)從 shiro.ini查詢用戶信息,根據(jù)賬號查詢用戶信息(賬號和密碼)
     如果查詢到用戶信息,就給ModularRealmAuthenticator返回用戶信息(賬號和密碼)
     如果查詢不到,就給ModularRealmAuthenticator返回null
6)ModularRealmAuthenticator接收IniRealm返回Authentication認(rèn)證信息;
如果返回的認(rèn)證信息是null,ModularRealmAuthenticator拋出異常(org.apache.shiro.authc.UnknownAccountException)
如果返回的認(rèn)證信息不是null(說明inirealm找到了用戶),對IniRealm返回用戶密碼 (在ini文件中存在)和 token中的密碼 進(jìn)行對比,如果不一致拋出異常(org.apache.shiro.authc.IncorrectCredentialsException)

007Shiro授權(quán)執(zhí)行流程?

1)對subject進(jìn)行授權(quán),調(diào)用方法isPermitted("permission串")
2)SecurityManager執(zhí)行授權(quán),通過ModularRealmAuthorizer執(zhí)行授權(quán)
3)ModularRealmAuthorizer執(zhí)行realm(自定義的Realm)從數(shù)據(jù)庫查詢權(quán)限數(shù)據(jù)
調(diào)用realm的授權(quán)方法:doGetAuthorizationInfo
4)realm從數(shù)據(jù)庫查詢權(quán)限數(shù)據(jù),返回ModularRealmAuthorizer
5)ModularRealmAuthorizer調(diào)用PermissionResolver進(jìn)行權(quán)限串比對
6)如果比對后,isPermitted中"permission串"在realm查詢到權(quán)限數(shù)據(jù)中,說明用戶訪問permission串有權(quán)限,否則 沒有權(quán)限,拋出異常。

008Shiro注解有哪些?

1.@RequiresAuthentication : 表示當(dāng)前Subject已經(jīng)通過login進(jìn)行了身份驗(yàn)證;即 Subject.isAuthenticated() 返回 true
2.@RequiresUser : 表示當(dāng)前Subject 已經(jīng)身份驗(yàn)證或者通過記住我登錄的
3.@RequiresGuest : 表示當(dāng)前Subject沒有身份驗(yàn)證或通過記住我登陸過,即是游客身份
4.@RequiresRoles(value = { “admin”, “user” }, logical = Logical.AND) : 表示當(dāng)前 Subject 需要角色 admin和user
5.@RequiresPermissions(value = { “user:a”, “user:b” }, logical = Logical.OR) : 表示當(dāng)前 Subject 需要權(quán)限 user:a 或 user:b

目錄

返回頂部
主站蜘蛛池模板: 欧美在线看欧美视频免费网站 | 狠狠色狠狠色综合日日32 | 五月婷婷狠狠 | 色视频在线免费看 | 香蕉大伊亚洲人在线观看 | 99久久中文字幕伊人情人 | 天天av天天翘天天综合网 | v视界影院视频一区二区三区 | 日韩a在线看免费观看视频 日韩h片 | 成人午夜性视频欧美成人 | 污视频18高清在线观看 | 视频一区二区三区在线观看 | 天天综合网天天综合色不卡 | 国精产品一区一区三区 | 三级在线观看 | 黄 色 片 在 线 看 | 黄色污污 | 韩日视频在线 | 曰批免费视频播放免费完整 | 美女视频黄a全部免费专区一 | 日本a在线观看 | 伊人91| 国产精品日日摸夜夜添夜夜添1 | 涩涩视频免费看 | 99在线观看精品视频 | 免费播放国产性色生活片 | 成年网站在线播放 | 中文字幕一区二区三区精彩视频 | 日本黄网站| 伊人888| 日本888 xxxx| 91免费精品国偷自产在线在线 | 日韩欧美 在线播放 | 日韩中文字幕精品免费一区 | 性欧美人妖在线看 | 日韩在线视频网 | 猫色综合网| 国产日韩精品欧美一区喷水 | 亚洲午夜精品在线 | 偷亚洲偷国产欧美高清 | aaa一级毛片|