国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区

當前位置:首頁 > 科技  > 軟件

想要控制好權限,這八個注解必須知道!

來源: 責編: 時間:2023-08-09 23:03:37 387觀看
導讀在碼猿慢病云管理系統采用的是Spring Cloud 集成Spring Security OAuth2的方式實現認證、鑒權,其中涉及到的一個重要問題則是數據權限的過濾,今天就來介紹一下實現的方案。在之前的文章中曾經介紹過通過自定義的三個注

在碼猿慢病云管理系統采用的是Spring Cloud 集成Spring Security OAuth2的方式實現認證、鑒權,其中涉及到的一個重要問題則是數據權限的過濾,今天就來介紹一下實現的方案。axb28資訊網——每日最新資訊28at.com

在之前的文章中曾經介紹過通過自定義的三個注解 @RequiresLogin、 @RequiresPermissions 、 @RequiresRoles 實現微服務的鑒權其實就是參考Spring Security 內置的注解實現,有想要了解的請看:3 個注解,優雅的實現微服務鑒權axb28資訊網——每日最新資訊28at.com

在介紹數據權限之前,先來看下Spring Security 中內置的8個權限注解,只有理解了這8個注解,對于理解碼猿慢病云管理系統中的實現方案就非常easy了。axb28資訊網——每日最新資訊28at.com

Spring Security 內置的權限注解是將鑒權下放到各個微服務,想要了解在網關處統一鑒權處理的請看之前分享的文章:實戰干貨!Spring Cloud Gateway 整合 OAuth2.0 實現分布式統一認證授權!axb28資訊網——每日最新資訊28at.com

Spring Security 中的權限注解

Spring Security 中支持多種數據權限注解,若想使用內置的注解,首先需要通過@EnableGlobalMethodSecurity這個注解開啟權限注解的支持,代碼如下:axb28資訊網——每日最新資訊28at.com

/** * @author 公眾號:碼猿技術專欄 * 自定義資源服務注解 * {@link com.code.ape.codeape.common.security.annotation.EnableCodeapeResourceServer} */@Documented@Inherited@Target({ ElementType.TYPE })@Retention(RetentionPolicy.RUNTIME)@EnableGlobalMethodSecurity(prePostEnabled = true)@Import({ CodeapeResourceServerAutoConfiguration.class, CodeapeResourceServerConfiguration.class })public @interface EnableCodeapeResourceServer {}

在碼猿慢病云管理系統中是將Spring Security集成為一個Spring Boot Starter,因此需要一個直接開啟對于Spring Security的支持,EnableCodeapeResourceServer是自定義的資源服務注解,便于一鍵導入資源服務配置,只要是資源服務,只需要在資源服務配置類上添加這個注解即可。axb28資訊網——每日最新資訊28at.com

比如設備服務(codeape-device-biz)的啟動類如下:axb28資訊網——每日最新資訊28at.com

圖片圖片axb28資訊網——每日最新資訊28at.com

如果是直接集成Spring Security ,那么直接在配置類標注@EnableGlobalMethodSecurity這個注解也是一樣效果,代碼如下:axb28資訊網——每日最新資訊28at.com

@Configuration@EnableGlobalMethodSecurity(prePostEnabled = true,securedEnabled = true, jsr250Enabled = true)public class SecurityConfig extends WebSecurityConfigurerAdapter {}

@EnableGlobalMethodSecurity注解的三個屬性如下:axb28資訊網——每日最新資訊28at.com

  • prePostEnabled:設置為true,將會開啟 Spring Security 提供的四個權限注解,@PostAuthorize、@PostFilter、@PreAuthorize 以及 @PreFilter,這四個注解支持權限表達式,支持 SpEL,功能比較豐富。
  • securedEnabled:設置為true,將會開啟 Spring Security 提供的 @Secured 注解,該注解不支持權限表達式。
  • jsr250Enabled:設置為true,將會開啟 JSR-250 提供的注解,主要包括 @DenyAll、@PermitAll 以及 @RolesAllowed 三個注解,這些注解也不支持權限表達式。

以上的8個注解總結如下:axb28資訊網——每日最新資訊28at.com

  1. @PostAuthorize:在目標方法執行之后進行權限校驗。
  2. @PostFilter:在目標方法執行之后對方法的返回結果進行過濾。
  3. @PreAuthorize:在目標方法執行之前進行權限校驗。
  4. @PreFilter:在目標方法執行之前對方法參數進行過濾。
  5. @Secured:訪問目標方法必須具備相應的角色。
  6. @DenyAll:拒絕所有訪問。
  7. @PermitAll:允許所有訪問。
  8. @RolesAllowed:訪問目標方法必須具備相應的角色。

其實在日常開發中使用前四個注解已經完全夠用,且支持靈活的SPEL權限表達式,方便定制。因此只需要設置prePostEnabled = trueaxb28資訊網——每日最新資訊28at.com

權限注解使用

接下來就來簡單介紹一下這8個權限注解的使用。axb28資訊網——每日最新資訊28at.com

1. @PreAuthorize

@PreAuthorize這個注解在方法執行之前進行安全校驗,支持SPEL,比如在接口使用代碼如下:axb28資訊網——每日最新資訊28at.com

@RestController@RequestMappingpublic class HelloService {    @PreAuthorize("hasRole('IN_HOS_NURSE')")    @GetMapping    public String hello() {        return "hello";    }}

@PreAuthorize("hasRole('IN_HOS_NURSE')")代碼含義則是只有擁有住院護士的角色的用戶才能訪問這個接口。這里用到了hasRole這個權限表達式,表示擁有某個角色axb28資訊網——每日最新資訊28at.com

2. @PreFilter

@PreFilter這個注解主要是對參數進行過濾,其中兩個屬性如下:axb28資訊網——每日最新資訊28at.com

  • value :SPEL表達式校驗
  • filterTarget:多個參數的情況下,指定對某個參數校驗

使用如下:axb28資訊網——每日最新資訊28at.com

@RestController@RequestMappingpublic class HelloService {    @PreFilter(value = "obj.id!=1",filterTarget = "users")    @GetMapping    public String hello(List<Obj> obj,Integer a) {        return "hello";    }}

3. @PostAuthorize

@PostAuthorize是在方法執行之后進行數據校驗,平常所有的數據校驗一般是在方法執行之前,所以一般結合@PreAuthorize使用。axb28資訊網——每日最新資訊28at.com

PostAuthorize中內置了一個returnObject返回值,對方法的返回值校驗,使用如下:axb28資訊網——每日最新資訊28at.com

@RestController@RequestMappingpublic class HelloService {    @PostAuthorize(value = "returnObject.id==1")    @GetMapping    public Obj hello(List<Obj> obj,Integer a) {        return "hello";    }}

這個接口的返回值的id必須等于1才會通過,否則將會拋出異常。axb28資訊網——每日最新資訊28at.com

4. @PostFilter

@PostFilter 注解是在目標方法執行之后,對目標方法的返回結果進行過濾,該注解中包含了一個內置對象 filterObject,表示目標方法返回的集合/數組中的具體元素:axb28資訊網——每日最新資訊28at.com

@RestController@RequestMappingpublic class HelloService {    @PostFilter(value = "filterObject.id==1")    @GetMapping    public Obj hello(List<Obj> obj,Integer a) {        return "hello";    }}

5. @Secured

@Secured 注解也是 Spring Security 提供的權限注解,不同于前面四個注解,該注解不支持權限表達式,只能做一些簡單的權限描述。axb28資訊網——每日最新資訊28at.com

使用如下:axb28資訊網——每日最新資訊28at.com

@RestController@RequestMappingpublic class HelloService {    @Secured({"ROLE_IN_HOS_NURSE","ROLE_IN_HOS_DOC"})    @GetMapping    public Obj hello(List<Obj> obj,Integer a) {        return "hello";    }}

這段代碼表示只有當前用戶擁有住院護士、住院醫生的權限才能訪問這個接口。axb28資訊網——每日最新資訊28at.com

@Secured能夠做的,@PreAuthorize也都能做,且給的更多!axb28資訊網——每日最新資訊28at.com

6. @DenyAll

@DenyAll 是 JSR-250 提供的方法注解,顧名思義,拒絕所有請求。axb28資訊網——每日最新資訊28at.com

@RestController@RequestMappingpublic class HelloService {    @DenyAll    @GetMapping    public String hello() {        return "hello";    }}

7. @PermitAll

@PermitAll 也是 JSR-250 提供的方法注解,顧名思義,允許所有訪問!axb28資訊網——每日最新資訊28at.com

@RestController@RequestMappingpublic class HelloService {    @PermitAll    @GetMapping    public String hello() {        return "hello";    }}

8. @RolesAllowed

@RolesAllowed 也是 JSR-250 提供的注解,可以添加在方法上或者類上,當添加在類上時,表示該注解對類中的所有方法生效;如果類上和方法上都有該注解,并且起沖突,則以方法上的注解為準。axb28資訊網——每日最新資訊28at.com

@RestController@RequestMappingpublic class HelloService {    @RolesAllowed({"IN_HOS_NURSE","IN_HOS_DOC"})    @GetMapping    public Obj hello(List<Obj> obj,Integer a) {        return "hello";    }}

這段代碼表示只有當前用戶擁有住院護士、住院醫生的權限才能訪問這個接口。axb28資訊網——每日最新資訊28at.com

根據上述的介紹,大致理解了這8個注解,實際項目中建議使用@PostAuthorize、@PostFilter、@PreAuthorize 以及 @PreFilter這四個注解,完全夠用了!axb28資訊網——每日最新資訊28at.com

慢病云管理系統的實踐

在碼猿慢病云管理系統中使用的權限注解是@PreAuthorize,在接口執行之前對數據權限進行校驗。axb28資訊網——每日最新資訊28at.com

比如住院服務codeape-inhos-biz中的分頁查詢住院患者接口如下:axb28資訊網——每日最新資訊28at.com

圖片圖片axb28資訊網——每日最新資訊28at.com

這里的@PreAuthorize("@pms.hasPermission('inhos_patinfohot_get')" )則是對用戶的權限進行攔截校驗,只有擁有inhos_patinfohot_get權限的用戶才能訪問這個接口。axb28資訊網——每日最新資訊28at.com

而這里是直接通過SPEL表達式調用IOC容器中的方法進行攔截校驗,代碼如下:axb28資訊網——每日最新資訊28at.com

com.code.ape.codeape.common.security.component.PermissionService#hasPermissionaxb28資訊網——每日最新資訊28at.com

圖片圖片axb28資訊網——每日最新資訊28at.com

邏輯很簡單,從SecurityContext中獲取用戶的權限和指定的權限進行比較,校驗通過則返回true。axb28資訊網——每日最新資訊28at.com

總結

本篇文章介紹了Spring Security 中內置的8個權限注解以及碼猿慢病云管理系統中的實踐,這個權限注解的使用是必須將權限下放到微服務鑒權才能用到,如果你的系統是在網關處統一鑒權則用不到。axb28資訊網——每日最新資訊28at.com

碼猿慢病云管理系統已經在星球中陸續更新,目前更新內容如下:axb28資訊網——每日最新資訊28at.com

前言     01 項目架構+業務介紹     02 三方組件介紹     03 服務端項目部署     04 前端項目部署     05 多租戶架構設計     06 醫療系統中的權限如何設計?     07 項目搭建     08 關掉驗證碼登錄     09 開發平臺自動生成業務代碼認證鑒權     01 認證登錄生成token     02 token檢驗、鑒權     03 token有效期設置     04 刷新token     05 檢查token     06 服務中如何獲取當前登錄用戶信息?     07 接口對外暴露     08 接口只允許內部調用怎么處理?     09 如何實現token中繼?     10 當前登錄用戶身份信息如何異步傳遞?     11 科室權限如何定一個注解自動注入?     12 一個注解防止接口重復提交     13 8個權限注解玩轉鑒權業務     01 科室管理     02 醫院管理     03 角色管理     04 菜單+權限管理

axb28資訊網——每日最新資訊28at.com

本文鏈接:http://m.rrqrq.com/showinfo-26-5188-0.html想要控制好權限,這八個注解必須知道!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Golang 中的 IO 包詳解:指定讀寫對象和偏移量接口

下一篇: 為什么這個外國人都喜歡用的軟件,中國卻做不了?

標簽:
  • 熱門焦點
  • 石頭自清潔掃拖機器人G10S評測:多年黑科技集大成之作 懶人終極福音

    科技圈經常能看到一個詞叫“縫合怪”,用來形容那些把好多功能或者外觀結合在一起的產品,通常這樣的詞是貶義詞,但如果真的是產品縫合的好、縫合的實用的話,那它就成了中性詞,今
  • 2023 年的 Node.js 生態系統

    隨著技術的不斷演進和創新,Node.js 在 2023 年達到了一個新的高度。Node.js 擁有一個龐大的生態系統,可以幫助開發人員更快地實現復雜的應用。本文就來看看 Node.js 最新的生
  • 只需五步,使用start.spring.io快速入門Spring編程

    步驟1打開https://start.spring.io/,按照屏幕截圖中的內容創建項目,添加 Spring Web 依賴項,并單擊“生成”按鈕下載 .zip 文件,為下一步做準備。請在進入步驟2之前進行解壓。圖
  • 2天漲粉255萬,又一賽道在抖音爆火

    來源:運營研究社作者 | 張知白編輯 | 楊佩汶設計 | 晏談夢潔這個暑期,旅游賽道徹底火了:有的「地方」火了&mdash;&mdash;貴州村超旅游收入 1 個月超過 12 億;有的「博主」火了&m
  • 新電商三兄弟,“抖快紅”成團!

    來源:價值研究所作 者:Hernanderz 隨著內容電商的概念興起,抖音、快手、小紅書組成的&ldquo;新電商三兄弟&rdquo;成為業內一股不可忽視的勢力,給阿里、京東、拼多多帶去了巨大壓
  • 認真聊聊東方甄選:如何告別低垂的果實

    來源:山核桃作者:財經無忌爆火一年后,俞敏洪和他的東方甄選依舊是頗受外界關心的&ldquo;網紅&rdquo;。7月5日至9日,為期5天的東方甄選&ldquo;甘肅行&rdquo;首次在自有App內直播,
  • iQOO Neo8 Pro即將開售:到手價3099元起 安卓性能最強旗艦

    5月23日,iQOO如期舉行了新品發布會,全新的iQOO Neo8系列也正式與大家見面,包含iQOO Neo8和iQOO Neo8 Pro兩個版本,其中標準版搭載高通驍龍8+,而Pro版更
  • OPPO K11評測:旗艦級IMX890加持 2000元檔最強影像手機

    【Techweb評測】中端機型用戶群體巨大,占了中國目前手機市場的大頭,一直以來都是各手機品牌的“必爭之地”,其中OPPO K系列機型一直以來都以高品質、
  • 北京:科技教育體驗基地開始登記

      北京“科技館之城”科技教育體驗基地登記和認證工作日前啟動。首批北京科技教育體驗基地擬于2023年全國科普日期間掛牌,后續還將開展常態化登記。  北京科技教育體驗基
Top 国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区
2020国产精品久久精品美国| 欧美高清视频一二三区 | 国产成人午夜电影网| 水蜜桃久久夜色精品一区的特点 | 美国十次综合导航| 美女视频一区在线观看| 免费观看在线综合色| 蜜臀国产一区二区三区在线播放 | 在线观看不卡| 亚洲伦伦在线| 亚洲一级在线| 一本色道亚洲精品aⅴ| 91精品办公室少妇高潮对白| 欧美伊人精品成人久久综合97| 欧美天堂一区二区三区| 正在播放一区二区| 精品欧美一区二区在线观看| 国产午夜精品一区二区三区四区| 国产亚洲综合av| 综合欧美亚洲日本| 亚洲国产婷婷综合在线精品| 三级久久三级久久| 国产在线视频一区二区| www.亚洲激情.com| 亚洲精品1区2区| 久久一区亚洲| 91精品国产乱码| 亚洲国产精品激情在线观看| 亚洲色图欧洲色图| 日韩国产一二三区| 成人妖精视频yjsp地址| 精久久久久久| 欧美日韩一区二区三区四区五区| 91精品一区二区三区在线观看| 久久在线观看免费| 亚洲综合丁香婷婷六月香| 另类小说视频一区二区| 92国产精品观看| 噜噜爱69成人精品| 欧美一级二级三级乱码| 亚洲欧美日韩国产成人精品影院 | 麻豆精品视频| 日韩视频免费观看高清完整版在线观看| 欧美经典三级视频一区二区三区| 亚洲一区二区精品视频| 国产精品白丝jk黑袜喷水| 韩日欧美一区| 91精品婷婷国产综合久久竹菊| 国产精品美女久久福利网站| 午夜成人免费电影| 不卡视频在线看| 一本色道a无线码一区v| 欧美成人一区二区三区片免费| 亚洲一区免费视频| 成人激情免费网站| 久久精品成人| 国产精品免费免费| 久久国产尿小便嘘嘘尿| 亚洲高清自拍| 久久伊99综合婷婷久久伊| 爽好多水快深点欧美视频| 亚洲欧美综合国产精品一区| 欧美色涩在线第一页| 亚洲天堂中文字幕| av资源站一区| 欧洲av一区二区嗯嗯嗯啊| 亚洲视频在线一区二区| 成人一区二区三区视频在线观看| 麻豆成人小视频| 亚洲天堂中文字幕| 91首页免费视频| 欧美丰满高潮xxxx喷水动漫| 亚洲国产综合色| 激情偷拍久久| 亚洲男人天堂av| 成人动漫av在线| 欧美高清性hdvideosex| 天天综合天天做天天综合| 激情久久久久久久| 久久九九影视网| 成人黄色av网站在线| 欧美中文字幕一区二区三区亚洲| 一区二区三区影院| 欧美午夜久久| 中文字幕精品综合| 99国产麻豆精品| 日韩欧美另类在线| 国产一区二区伦理片| 欧美在线视频日韩| 日韩黄色小视频| 久久久噜噜噜久久狠狠50岁| 一区二区免费看| 99精品免费| 亚洲一区二区精品视频| 国产亚洲精品bv在线观看| 亚洲视频资源在线| 亚洲区一区二| 亚洲综合另类小说| 亚洲综合另类| 日韩激情一区二区| 久色成人在线| 免费成人你懂的| 欧美精品v国产精品v日韩精品| 毛片av一区二区| 欧美一区高清| 激情久久久久久久久久久久久久久久| 麻豆9191精品国产| 午夜一区二区三区在线观看| 免费不卡亚洲欧美| 亚洲成人精品在线观看| 久久先锋影音| 久久电影网站中文字幕| 欧美猛男gaygay网站| 国产风韵犹存在线视精品| 日韩欧美高清dvd碟片| 91在线观看污| 亚洲精品国产视频| 免费日韩精品中文字幕视频在线| 日韩二区在线观看| 91精品国产综合久久精品app| 丰满少妇久久久久久久| 26uuuu精品一区二区| 国产一区观看| 日韩成人免费看| 日韩免费视频一区二区| 成人精品国产一区二区4080| 中文字幕第一页久久| 羞羞视频在线观看欧美| 久久久久综合| 日韩精品每日更新| 欧美又粗又大又爽| 国产性做久久久久久| 久久综合综合久久综合| 欧美一区日韩一区| 欧美日韩在线不卡一区| 亚洲国产精品久久艾草纯爱| 欧美日韩视频在线一区二区| 久久精品99国产精品日本| 日韩精品一区二区三区在线| 在线视频国内自拍亚洲视频| 三级成人在线视频| 91精品国产一区二区三区香蕉| 欧美日韩成人一区二区三区| 亚洲午夜久久久久久久久电影网 | 国产精品jizz在线观看美国| 97aⅴ精品视频一二三区| 高清不卡在线观看av| 久久久久久久精| 免费在线日韩av| 高清成人免费视频| 亚洲尤物视频在线| 欧美一区二区黄色| 国产精品国码视频| 日韩精品一级中文字幕精品视频免费观看| 这里是久久伊人| 国产精品老牛| av在线免费不卡| 免费在线观看不卡| 国产色91在线| 欧美高清精品3d| 亚洲精品在线二区| 成人免费观看男女羞羞视频| 亚洲自拍另类综合| 久久久噜噜噜久久人人看| 久久在线91| 亚洲视频综合| 国产高清不卡二三区| 一区二区理论电影在线观看| 欧美成人福利视频| 欧美午夜电影在线播放| 久久精品av麻豆的观看方式| 国产精品久久久久久久久晋中 | 久久久九九九九| 91精品午夜视频| 色88888久久久久久影院按摩| 欧美精品导航| 国产很黄免费观看久久| 三级欧美在线一区| ...中文天堂在线一区| 欧美精品一区二区高清在线观看| 欧美在线一区二区三区| 国产精品一区免费观看| 国模大胆一区二区三区| 99久久国产综合色|国产精品| 久久99这里只有精品| 亚洲一二三区不卡| 亚洲欧洲在线观看av| 久久精品无码一区二区三区| 欧美一区二区成人| 欧美日韩免费一区二区三区| 色哟哟一区二区三区| 亚洲视频二区| 99国产精品久久久久老师 | 久久精品亚洲国产奇米99| 日韩三级视频在线看| 欧美蜜桃一区二区三区| 欧美日韩一区二区在线观看视频 | 亚洲女同一区二区| 亚洲欧洲日韩在线| 国产精品成人一区二区艾草 |