日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shiro学习总结(一)----初识shiro

發布時間:2025/7/25 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shiro学习总结(一)----初识shiro 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?


本系列內容大多總結自官網和張開濤的《跟我學Shiro》

一、shiro簡介

  1.1、shiro有什么用?

    shiro是一個功能強大使用簡單的java安全框架,主要提供了五大功能:

    1、認證:用戶身份認證,也就是登陸;

    2、授權-訪問控制:通過一些配置,用戶登錄后會自動被賦予相應的身份和操作權限,實現訪問控制;

    3、密碼加密-保護或隱藏數據防止被偷窺;

    4、會話管理

    5、緩存

    shiro還支持一些輔助特性,如Web應用安全、單元測試和多線程,它們的存在強化了上面提到的五個要素。

?

  1.2、shiro與Spring Security那個好?

    Spring Security:除了不能脫離Spring,shiro具有的功能它都有,權限細粒度高,還提供許多其它的功能(筆者沒用過,具體哪些功能不清楚),而shiro則需要手動去實現。但是與shiro相比,操作太復雜,概念多,難理解,學習成本高。    

    shiro:使用簡單直接,上手快,控制粒度可糙可細,擴展性強,自由度高,學習成本低。但功能比Spring Security要少些。

    個人觀點:我認為在滿足基本功能需求的情況下具有下面這兩個要素就可以稱之為好框架了:

    一是單易用,學習成本低。二是擴展性強,自由度高。

    shiro無疑比Spring Security更具有優勢,雖然Spring Security功能更強,但shiro具有的功能已經能滿足大部分開發需求了;

二、shiro的外部結構

  什么是外部結構?這里說的外部結構就是指開發過程中會用到shiro API。

  

  

Subject主體,代表了當前“用戶”,這個用戶不一定是一個具體的人,與當前應用交互的任何東西都是Subject,如網絡爬蟲,機器人等;

    ? shiro的所有功能,如認證,授權等,直接操作Subject實現

    ??所有Subject都綁定到SecurityManager,與Subject的所有交互都會委托給SecurityManager;

    ??可以把Subject認為是一個門面;SecurityManager才是實際的執行者;

SecurityManager安全管理器;即所有與安全有關的操作都會與SecurityManager交互;且它管理著所有Subject;

    可以看出它是Shiro的核心,它負責與后邊介紹的其他組件進行交互,如果學習過SpringMVC,你可以把它看成DispatcherServlet前端控制器;

Realm域,Shiro從從Realm獲取安全數據(如用戶、角色、權限),就是說SecurityManager要驗證用戶身份,那么它需要從Realm獲取相應的用戶進行比較以確定用戶身份是否合法;

    也需要從Realm得到用戶相應的角色/權限進行驗證用戶是否能進行操作;

    可以把Realm看成DataSource,即安全數據源。

    也就是說,shiro不自動提供給用戶權限,需要開發人員在代碼中通過Realm注入。

?

簡單點來說,最簡單的一個Shiro應用:

1、應用代碼通過Subject來進行認證和授權,而Subject又委托給SecurityManager;

2、我們需要給Shiro的SecurityManager注入Realm,從而讓SecurityManager能得到合法的用戶及其權限進行判斷。

  

三、一個簡單的shiro登錄實例

  

  2.1、引入包

  這里我用的maven構建項目。

  因為shiro依賴slf4j,maven僅幫我們下載slf4j的API,所以我們最好導入slf4j的實現,否則會有警告。

  POM文件

  

 ? ?Maven下載的包

  

  2.2、創建ini配置文件

  在ini配置文件中,輸入賬號和密碼。這里為了方便演示所以使用ini配置文件,在實際項目中這些數據都要放在數據庫中。

  2.3、創建測試類

public static void main(String[] args) {// 1、讀取配置文件,初始化SecurityManager工廠Factory<SecurityManager> factory=new IniSecurityManagerFactory("classpath:shiro.ini");///2、獲取securityManager實例SecurityManager securityManager=factory.getInstance();///3、把securityManager實例綁定到SecurityUtils SecurityUtils.setSecurityManager(securityManager);///4、得到當前執行的用戶Subject currentUser=SecurityUtils.getSubject();///5、創建token令牌,用戶名/密碼UsernamePasswordToken token=new UsernamePasswordToken("java1234", "12345");try{///6、身份認證 currentUser.login(token); System.out.println("身份認證成功!");}catch(AuthenticationException e){e.printStackTrace();System.out.println("身份認證失敗!");}// 退出 currentUser.logout();}

  1、通過 new IniSecurityManagerFactory 并指定一個 ini 配置文件來創建一個 SecurityManager 工廠,這種方法只是用于測試,實際開發不使用。

  2、獲取 SecurityManager 并綁定到 SecurityUtils,這是一個全局設置,設置一次即可,實際開發中在配置中完成;

  3、通過 SecurityUtils 得到 Subject,其會自動綁定到當前線程;如果在 web 環境在請求結束時需要解除綁定;然后獲取身份驗證的 Token,如用戶名 / 密碼;

  4、調用 subject.login 方法進行登錄,其會自動委托給 SecurityManager.login 方法進行登錄;

  5、如果身份驗證失敗請捕獲 AuthenticationException 或其子類,常見的如:

   DisabledAccountException(禁用的帳號)、LockedAccountException(鎖定的帳號)、

  ? ? UnknownAccountException(錯誤的帳號)、ExcessiveAttemptsException(登錄失敗次數過多)、

   IncorrectCredentialsException (錯誤的憑證)、ExpiredCredentialsException(過期的憑證)等,具體請查看其繼承關系

?

  

?

轉載于:https://www.cnblogs.com/jsyllhb/p/8666511.html

總結

以上是生活随笔為你收集整理的shiro学习总结(一)----初识shiro的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩av免费看 | 又黄又免费的网站 | 日本免费网 | 一起射导航| 中文字幕777 | 国产淫语对白 | 91好色先生tv | 日本成人性爱 | 美女在线播放 | 欧美色拍 | 国产在线拍揄自揄拍无码 | 永久免费视频网站 | 哺乳援交吃奶在线播放 | 三级做爰第一次 | 亚洲经典在线观看 | 午夜写真片福利电影网 | 欧美高清视频一区 | 成人av免费在线看 | 九九热免费精品视频 | 干美女视频 | 免费在线观看一区 | 午夜合集| 又爽又黄又无遮挡 | 亚洲a毛片 | 456亚洲影视 | 天堂网av手机版 | 五月伊人婷婷 | 热久久精品免费视频 | 爽爽影院免费观看 | 亚洲午夜av久久乱码 | 欧美在线一二三 | 中文在线最新版天堂 | 天天干天天谢 | 国产三级国产精品国产国在线观看 | 美女人人操| 免费午夜影院 | 亚洲va天堂va国产va久 | 麻豆蜜桃在线观看 | 第一章豪妇荡乳黄淑珍 | 欧美日韩国产色 | 日剧再来一次第十集 | 熟妇高潮一区二区高潮 | 姝姝窝人体www聚色窝 | 香蕉爱爱视频 | 日本中文字幕精品 | 青青视频免费看 | 久久这里只有精品6 | 高清欧美性猛交xxxx黑人猛交 | 少妇久久久 | 秋霞黄色网 | 成年视频在线观看 | 精品久久久无码中文字幕 | 日韩综合中文字幕 | 国产在线麻豆精品观看 | 黄色美女毛片 | 日本三级免费网站 | 波多野结衣电车 | av中文在线天堂 | 午夜宅男影院 | 日本久久成人 | 国产视频在线观看免费 | 亚洲二区视频 | 亚洲最新在线 | 毛片毛片女人毛片毛片 | 多啪啪免费视频 | 国产精品探花一区二区在线观看 | av调教| 亚洲无码精品一区二区三区 | 麻豆影视在线观看 | 中文字幕第11页 | 巨胸大乳www视频免费观看 | 秋霞亚洲 | 久久岛国 | 337p粉嫩大胆噜噜噜亚瑟影院 | 九九视频国产 | 懂色aⅴ一区二区三区免费 国产精品99在线观看 | 欧美一级一区二区 | 日日夜操 | 91重口味 | 男生草女生视频 | 麻豆视频观看 | 日日草天天干 | wwwa级片| 青青操狠狠干 | 中国一区二区三区 | 97人妻一区二区精品视频 | 日韩午夜一区 | 夜夜骑av| 中文字幕精品一区二区三区精品 | 一区二区一级片 | 成人免费xxxxx在线视频 | 奇米成人网 | 亚洲欧洲一级 | 日韩精品视频一区二区三区 | 日韩一区二区视频 | 欧美aa一级| 亚洲第一精品网站 | 亚洲一区在线免费观看 | 91视频在线视频 |