您好,登錄后才能下訂單哦!
這篇文章主要講解了“基于Spring Boot的權限管理怎么實現”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“基于Spring Boot的權限管理怎么實現”吧!
權限是每個系統最重要的一部分,一般開發系統都是從權限系統開始。
從控制力度來看,可以將權限管理分為兩大類:
功能級權限管理;
數據級權限管理。
從控制方向來看,也可以將權限管理分為兩大類:
從系統獲取數據,比如查詢訂單、查詢客戶資料;
向系統提交數據,比如刪除訂單、修改客戶資料。
從類別上分,有兩大類:
認證:你是誰?–識別用戶身份。
授權:你能做什么?–限制用戶使用的功能。
從控制級別(模型)上分:
URL級別-粗粒度
在web.xml中配置一個過濾器filter,在過濾器中,對請求的地址進行解析,字符串截取: url.substring()…把上下文前面的路徑都截取掉,剩下user_login.action。 過濾器代碼: 以通過查詢數據庫,來判斷,當前登錄用戶,是否可以訪問user_login.action。 url級別控制,每次請求過程中只控制一次 ,相比方法級別權限控制 是粗粒度的 !URL級別權限控制,基于Filter實現。
方法級別-細粒度
aop面向切面的編程,在方法執行之前,進行權限判斷,如果沒有權限,拋出異常,終止方法的繼續運行。 自定義注解 在需要權限控制方法上, 添加需要的權限信息 代理 (Spring AOP ),在目標方法運行時 進行增強 ,通過反射技術獲取目標方法上注解中權限 , 查詢數據庫獲取當前登陸用戶具有權限,進行比較。 相比URL級別權限控制, 可以控制到服務器端執行的每個方法,一次請求中可以控制多次。
頁面級別-自定義標簽(顯示)
頁面顯示的權限控制,通常是通過 自定義標簽來實現。
數據級別-最細化的(數據)
在每條數據上增加一個字段,該字段記錄了權限的值。數據和權限綁定。 代碼,你在查詢數據的時候,需要去權限和用戶對應表中,通過當前登錄用戶的條件,查詢出你的數據權限。然后再將數據權限作為一個條件,放到業務表中進行查詢。從而限制了數據的訪問。
Apache Shiro 可以不依賴任何技術使用, 可以直接和web整合,通常在企業中和Spring 結合使用。
Authentication: 認證 — 用戶登錄
Authorization : 授權 —- 功能權限管理
Shiro的框架的體系結構:
Shiro權限控制流程的原理:
應用代碼 —- 調用Subject (shiro的Subject 就代表當前登陸用戶) 控制權限 —- Subject 在shiro框架內部 調用 Shiro SecurityManager 安全管理器 —– 安全管理器調用 Realm (程序和安全數據連接器 )。
Subject要進行任何操作,都必須要調用安全管理器(對我們來說是自動的)。 而安全管理器會調用指定的Realms對象,來連接安全數據。
Realms用來編寫安全代碼邏輯和訪問安全數據,是連接程序和安全數據的橋梁。
項目基礎框架采用全新的Java Web開發框架 —— Spring Boot,消除了繁雜的XML配置,使得二次開發更為簡單;數據訪問層采用Mybatis,同時引入了通用Mapper和PageHelper插件,可快速高效的對單表進行增刪改查操作,消除了大量傳統XML配置SQL的代碼;安全框架采用時下流行的Apache Shiro,可實現對按鈕級別的權限控制;前端頁面使用Bootstrap構建,主題風格為時下Google最新設計語言Material Design,并提供多套配色以供選擇。FEBS意指:Fast,Easy use,Beautiful和Safe。
系統功能模塊組成如下所示:
基礎框架:Spring Boot
持久層框架:Mybatis
安全框架:Apache Shiro
摸板引擎:Thymeleaf
數據庫連接池:阿里巴巴Druid
緩存框架:Ehcache
日志打印:logback
其他:fastjson,poi,javacsv,quartz等。
基礎框架:Bootstrap4
JavaScript框架:jQuery
消息組件:Bootstrap notify
提示框插件:SweetAlert2
樹形插件:jsTree
樹形表格插件:jqTreeGrid
表格插件:BootstrapTable
表單校驗插件:jQuery-validate
多選下拉框插件:multiple-select
圖表插件:Highcharts
語言:Java
IDE:Eclipse Oxygen
依賴管理:Maven
數據庫:Oracle 11g & MySQL 5.7
版本管理:SVN,git
系統的效果如下:
感謝各位的閱讀,以上就是“基于Spring Boot的權限管理怎么實現”的內容了,經過本文的學習后,相信大家對基于Spring Boot的權限管理怎么實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。