大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

第一部分 Java基礎(chǔ)
第二部分 Java進(jìn)階

Java shiro面試題

1、簡單介紹一下Shiro框架?

Apache Shiro是Java的一個安全框架。使用Shiro可以非常容易的開發(fā)出足夠好的應(yīng)用。其不僅可以用在JavaSE環(huán)境,也可以用在JavaEE環(huán)境。Shiro可以幫助我們完成功能:認(rèn)證、授權(quán)、加密、會話管理、與Web集成、緩存等。

三個核心組件:Subject,SecurityManager和Realms。

● Subject:即“當(dāng)前操作用戶”。但是在Shiro中Subject這一概念并不僅僅指人,也可以是第三方進(jìn)程、后臺帳戶(Daemon Account)或其他類似事物。它僅僅意味著“當(dāng)前跟軟件交互的東西”。但考慮到大多數(shù)目的和用途,你可以把它認(rèn)為是Shiro的“用戶”概念。Subject代表了當(dāng)前用戶的安全操作。

● SecurityManager:它是管理所有用戶的安全操作,是Shiro框架的核心,典型的Facade模式。Shiro通過SecurityManager來管理內(nèi)部組件實(shí)例,并通過它來提供安全管理的各種服務(wù)。

● Realm:Realm充當(dāng)了Shiro與應(yīng)用安全數(shù)據(jù)間的“橋梁”或者“連接器”。也就是說,當(dāng)對用戶執(zhí)行認(rèn)證(登錄)和授權(quán)(訪問控制)驗(yàn)證時,Shiro會從應(yīng)用配置的Realm中查找用戶及其權(quán)限信息。

2、Shiro主要的四個組件?

● SecurityManager

典型的Facade,Shiro通過它對外提供安全管理的各種服務(wù)。

● Authenticator

對“Who are you?”進(jìn)行核實(shí)。通常涉及用戶名和密碼。這個組件負(fù)責(zé)收集principals 和credentials,并將它們提交給應(yīng)用系統(tǒng)。如果提交的credentials跟應(yīng)用系統(tǒng)中提供的 credentials吻合,就能夠繼續(xù)訪問,否則需要重新提交principals和credentials,或者直 接終止訪問。

● Authorizer

身份份驗(yàn)證通過后,由這個組件對登錄人員進(jìn)行訪問控制的篩查,比如“who can do what”,或者“who can do which actions”。Shiro采用“基于Realm”的方法,即用戶 (又稱Subject)、用戶組、角色和permission的聚合體。

● Session Manager

這個組件保證了異構(gòu)客戶端的訪問,配置簡單。它是基于POJO/J2SE的,不跟任何的 客戶端或者協(xié)議綁定。

3、Shiro運(yùn)行原理?

● Application Code:應(yīng)用程序代碼,就是我們自己的編碼,如果在程序中需要進(jìn)行權(quán)限控制,需要調(diào)用Subject的API。

●Subject:主體代表了當(dāng)前用戶。所有的Subject都綁定到SecurityManager,與Subject的所有交互都會委托給SecurityManager,可以將Subject當(dāng)成一個門面,而真正執(zhí)行者是SecurityManager。

● SecurityManage:安全管理器,所有與安全有關(guān)的操作都會與SecurityManager交互,并且它管理所有的Subject。

● 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ù)源。

4、Shiro的四種權(quán)限控制方式?

● url級別權(quán)限控制

● 方法注解權(quán)限控制

● 代碼級別權(quán)限控制

5、什么是粗顆粒和細(xì)顆粒權(quán)限?

對資源類型的管理稱為粗顆粒度權(quán)限控制,即只控制到菜單、按鈕、方法。粗粒度的例子比如:用戶具有用戶管理的權(quán)限,具有導(dǎo)出訂單明細(xì)的權(quán)限。

對資源實(shí)例的控制稱為細(xì)顆粒度權(quán)限管理,即控制到數(shù)據(jù)級別的權(quán)限,比如:用戶只允許修改本部門的員工信息,用戶只允許導(dǎo)出自己創(chuàng)建的訂單明細(xì)。

● 總結(jié):

粗顆粒權(quán)限:針對url鏈接的控制。

細(xì)顆粒權(quán)限:針對數(shù)據(jù)級別的控制。

比如:衛(wèi)生局可以查詢所有用戶,衛(wèi)生室只可以查詢本單位的用戶。

6、粗顆粒和細(xì)顆粒如何授權(quán)?

對于粗顆粒度的授權(quán)可以很容易做系統(tǒng)架構(gòu)級別的功能,即系統(tǒng)功能操作使用統(tǒng)一的粗顆粒度的權(quán)限管理。對于細(xì)顆粒度的授權(quán)不建議做成系統(tǒng)架構(gòu)級別的功能,因?yàn)閷?shù)據(jù)級別的控制是系統(tǒng)的業(yè)務(wù)需求,隨著業(yè)務(wù)需求的變更業(yè)務(wù)功能變化的可能性很大,建議對數(shù)據(jù)級別的權(quán)限控制在業(yè)務(wù)層個性化開發(fā),比如:用戶只允許修改自己創(chuàng)建的商品信息可以在service接口添加校驗(yàn)實(shí)現(xiàn),service接口需要傳入當(dāng)前操作人的標(biāo)識,與商品信息創(chuàng)建人標(biāo)識對比,不一致則不允許修改商品信息。

粗顆粒權(quán)限:可以使用過慮器統(tǒng)一攔截url。

細(xì)顆粒權(quán)限:在service中控制,在程序級別來控制,個性化編程。

全部教程
主站蜘蛛池模板: 国产香蕉视频在线播放 | 午夜在线| 国产一区二区三区在线 | 久久99精品国产麻豆 | 国产乱码 | 99热这里只有精品首页 | 四虎影视精品永久免费 | 另类欧美chinese | 偷偷狠狠的日日2020 | 亚洲播放| 狠狠色噜噜狠狠狠狠狠色综合久久 | 日韩久久久精品中文字幕 | 日本精品视频一区二区三区 | 99精品国内不卡在线观看 | 日本高清不卡视频 | 999国产精品 | 国产成人影院一区二区 | 羞羞网站视频 | 日韩免费影视 | 欧美毛片在线播放观看 | 亚洲热在线观看 | 一区二区三区乱码 | 鲁丝一区二区三区不属 | 欧美性久久久久 | 亚洲欧美精品成人久久91 | 中文字幕久久综合 | 99热这里只有精品66 | 狠狠乱| 四虎成人在线 | 午夜国产精品理论片久久影院 | 欧美性久久久久 | 久久久久久尹人网香蕉 | 欧美成人香蕉网在线观看 | 久久久精品影院 | 99这里只有精品6 | 午夜欧美在线 | 成年人一级黄色片 | 日本视频中文字幕一区二区 | 国产亚洲精品2021自在线 | 经典国产乱子伦精品视频 | 国产毛片一区二区三区 |