Shiro

并發(fā)登錄權(quán)限控制

配置xml文件

<bean id="kickoutSessionControlFilter" class="security.shiro.filter.KickoutSessionControlFilter">  
        <!-- 使用cacheManager獲取相應的cache來緩存用戶登錄的會話伴找;用于保存用戶—會話之間的關(guān)系的 -->
        <property name="cacheManager" ref="緩存引向注入"/>
        <!-- 用于根據(jù)會話ID,獲取會話進行踢出操作的 -->
        <property name="sessionManager" ref="對話引向注入"/>
        <!-- 是否踢出后來登錄的向族,默認是false搀继;即后者登錄的用戶踢出前者登錄的用戶 -->
        <property name="kickoutAfter" value="false"/>
        <!-- 同一個用戶最大的會話數(shù)窘面,默認1;比如2的意思是同一個用戶允許最多同時兩個人登錄 -->
        <property name="maxSession" value="1"/>
        <!-- 被踢出后重定向到的地址  -->
        <property name="kickoutUrl" value="踢出地址"/>
    </bean> 

攔截器繼承AccessControlFilter類

AccessControlFilter提供了訪問控制的基礎功能叽躯;比如是否允許訪問/當訪問拒絕時如何處理等:

方法onAccessDenied:表示當訪問拒絕時是否已經(jīng)處理了

  1. 從當前線程中獲取對象
  2. 如果沒有證書 或者 記住我狀態(tài)
  • 跳出執(zhí)行下一段流程
  1. 從實體中獲取對話 取得對話和賬戶ID
  2. 同步控制 初始化踢出隊列 以賬戶ID為鍵值 沒有初始化則將改賬戶放入隊列中
  3. 檢查隊列里沒有此sessionId财边,且用戶沒有被踢出;沒有則放入隊列
  4. 如果隊列里的sessionId數(shù)超出最大會話數(shù)(超過)点骑,開始踢人 移除值為seesionID對應的對話
  5. 監(jiān)測自身對話是否被踢出酣难,如果被踢出了,直接退出黑滴,重定向到踢出后的地址 該攔截器實例已經(jīng)處理了 流程不需要繼續(xù)
  6. 第七項不滿足時繼續(xù)下一段流程

登錄(login)操作
org.apache.shiro.subject.Subject.login(token)憨募;
委托給SecurityManager進行登錄操作 Subject subject = securityManager.login(this, token);
根據(jù)token獲取對應的證書信息 Authenticator才是真正的身份驗證者,Shiro API中核心的身份認證入口點
重寫MyShiroRealm類繼承AuthorizingRealm
Shiro從從Realm獲取安全數(shù)據(jù)(如用戶袁辈、角色菜谣、權(quán)限)

<bean id="Realm配置ID" class="配置類路徑">
        <property name="cacheManager" ref="shiroCacheManager" /> 
</bean>
  • 獲取UsernamePasswordToken
  • 查詢用戶授權(quán)信息 獲取角色名并放入role的name中
  • 根據(jù)角色配置權(quán)限信息
  • 返回對應賬戶
  • 根據(jù)賬戶ID重新從數(shù)據(jù)庫中獲取一次賬戶(Shiro的)
  • 返回授權(quán)和角色都沒有緩存的用戶(包括ID,密碼,名字)
  • 可以通過設置subject session對話中超時時間尾膊,默認為30分鐘媳危,-1為永不超時

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市冈敛,隨后出現(xiàn)的幾起案子待笑,更是在濱河造成了極大的恐慌,老刑警劉巖莺债,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件滋觉,死亡現(xiàn)場離奇詭異签夭,居然都是意外死亡齐邦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門第租,熙熙樓的掌柜王于貴愁眉苦臉地迎上來措拇,“玉大人,你說我怎么就攤上這事慎宾∝は牛” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵趟据,是天一觀的道長券犁。 經(jīng)常有香客問我,道長汹碱,這世上最難降的妖魔是什么粘衬? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮咳促,結(jié)果婚禮上稚新,老公的妹妹穿的比我還像新娘。我一直安慰自己跪腹,他們只是感情好褂删,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著冲茸,像睡著了一般屯阀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上轴术,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天难衰,我揣著相機與錄音,去河邊找鬼膳音。 笑死召衔,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的祭陷。 我是一名探鬼主播苍凛,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼趣席,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了醇蝴?” 一聲冷哼從身側(cè)響起宣肚,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎悠栓,沒想到半個月后霉涨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡惭适,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年笙瑟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片癞志。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡往枷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凄杯,到底是詐尸還是另有隱情错洁,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布戒突,位于F島的核電站屯碴,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏膊存。R本人自食惡果不足惜导而,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望膝舅。 院中可真熱鬧嗡载,春花似錦、人聲如沸仍稀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽技潘。三九已至遥巴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間享幽,已是汗流浹背铲掐。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留值桩,地道東北人摆霉。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親携栋。 傳聞我的和親對象是個殘疾皇子搭盾,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Apache Shiro Apache Shiro 是一個強大而靈活的開源安全框架,它干凈利落地處理身份認證婉支,授權(quán)...
    羅志贇閱讀 3,221評論 1 49
  • 文章轉(zhuǎn)載自:http://blog.csdn.net/w1196726224/article/details/53...
    wangzaiplus閱讀 3,391評論 0 3
  • 構(gòu)建一個互聯(lián)網(wǎng)應用鸯隅,權(quán)限校驗管理是很重要的安全措施,這其中主要包含: 認證 - 用戶身份識別向挖,即登錄 授權(quán) - 訪...
    zhuke閱讀 3,495評論 0 30
  • 一蝌以、架構(gòu) 要學習如何使用Shiro必須先從它的架構(gòu)談起,作為一款安全框架Shiro的設計相當精妙何之。Shiro的應用...
    ITsupuerlady閱讀 3,526評論 4 32
  • 一:基礎概念 什么是權(quán)限管理 權(quán)限管理包括用戶身份認證和授權(quán)兩部分跟畅,簡稱認證授權(quán)。對于需要訪問控制的資源用戶首先經(jīng)...
    QGUOFENG閱讀 553評論 0 0