中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于Spring Boot的權限管理怎么實現

發布時間:2021-12-27 17:27:19 來源:億速云 閱讀:790 作者:iii 欄目:大數據

這篇文章主要講解了“基于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

Apache Shiro 可以不依賴任何技術使用, 可以直接和web整合,通常在企業中和Spring 結合使用。

  • Authentication: 認證 — 用戶登錄

  • Authorization : 授權 —- 功能權限管理

Shiro的框架的體系結構:

 基于Spring Boot的權限管理怎么實現

Shiro權限控制流程的原理: 基于Spring Boot的權限管理怎么實現

  • 應用代碼 —- 調用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的權限管理怎么實現”的內容了,經過本文的學習后,相信大家對基于Spring Boot的權限管理怎么實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宣化县| 东乡族自治县| 毕节市| 景宁| 台东市| 泾川县| 阳山县| 雷山县| 张家界市| 莆田市| 阜宁县| 新河县| 称多县| 芜湖县| 金沙县| 彰化县| 淮北市| 南京市| 长垣县| 巴东县| 东兴市| 重庆市| 黄大仙区| 安图县| 崇明县| 新民市| 磐石市| 运城市| 麦盖提县| 满城县| 彝良县| 西畴县| 嘉禾县| 瑞昌市| 木里| 天门市| 安图县| 汽车| 荆门市| 凉城县| 建始县|