源代码:https://gitee.com/shentuzhigang/mini-project/tree/master/iris_demo/casbin_demo

Go Module

go get github.com/kataras/iris/v12
go get github.com/casbin/casbin/v2
go get gorm.io/gorm
go get gorm.io/driver/mysql
go get github.com/casbin/gorm-adapter/v3

Example

package mainimport ("github.com/casbin/casbin/v2"gormadapter "github.com/casbin/gorm-adapter/v3"casbinMiddleware "github.com/iris-contrib/middleware/casbin""github.com/kataras/iris/v12""github.com/kataras/iris/v12/middleware/basicauth""gorm.io/driver/mysql""gorm.io/gorm"
)func hi(ctx iris.Context) {ctx.Writef("Hello %s", casbinMiddleware.Subject(ctx))
}func newApp() *iris.Application {db, err := gorm.Open(mysql.New(mysql.Config{DSN:                      "root:123456@tcp(127.0.0.1:3306)/test",DontSupportRenameColumn:  false,DontSupportRenameIndex:   false,DisableDatetimePrecision: false,DefaultStringSize:        256,}), &gorm.Config{SkipDefaultTransaction: true})if err != nil {return nil}var a, _ = gormadapter.NewAdapterByDB(db)var Enforcer, _ = casbin.NewEnforcer("casbinmodel.conf", a)middleware := casbinMiddleware.New(Enforcer)app := iris.New()app.Logger().SetLevel("debug")app.Use(basicauth.Default(map[string]string{"bob":   "bobpass","alice": "alicepass",}))app.Use(middleware.ServeHTTP)app.Get("/", hi)app.Get("/dataset1/{p:path}", hi) // p, alice, /dataset1/*, GETapp.Post("/dataset1/resource1", hi)app.Get("/dataset2/resource2", hi)app.Post("/dataset2/folder1/{p:path}", hi)app.Any("/dataset2/resource1", hi)return app
}func main() {app := newApp()app.Listen(":8080")
}

参考文章

Iris + Casbin 权限控制实战

Iris——整合Gorm持久化的Casbin的Example相关推荐

  1. 跟着狂神学Redis(NoSql+环境配置+五大数据类型+三种特殊类型+Hyperloglog+Bitmap+事务+Jedis+SpringBoot整合+Redis持久化+...)

    跟着狂神学Redis 狂神聊Redis 学习方式:不是为了面试和工作学习!仅仅是为了兴趣!兴趣才是最好的老师! 基本的理论先学习,然后将知识融汇贯通! 狂神的Redis课程安排: nosql 讲解 阿 ...

  2. 蒟蒻のgolang小窝(gin整合gorm完成一次清单实战~)

    虽然辛苦,但我还是会选择那种滚烫的人生. 继续学习杜松子酒吧 又是一张让人能产生xcd的图呢!go的吉祥物总有种萌到欠打的感觉(不是) GORM 首先可以肯定的是,gorm上手很快,并且文档同样的中国 ...

  3. Iris——整合go-playground/validator参数校验Demo

    源代码:https://gitee.com/shentuzhigang/mini-project/blob/master/iris_validator 解决方案 go.mod require (git ...

  4. springboot2整合Quartz持久化定时任务管理界面

    此案例在天降风云博主的基础上进行了补充 Quartz提供两种基本作业存储类型.第一种类型叫做RAMJobStore,第二种类型叫做JDBC作业存储.在默认情况下Quartz将任务调度的运行信息保存在内 ...

  5. 1命名规则 sentinel_Spring Cloud Alibaba 整合 Sentinel 流控

    前面我们都是直接通过集成sentinel的依赖,通过编码的方式配置规则等.对于集成到Spring Cloud中阿里已经有了一套开源框架spring-cloud-alibaba,就是用于将一系列的框架成 ...

  6. 跟我一起学Redis之Redis持久化必知必会

    前言 Redis是出了名的速度快,那是因为在内存中进行数据存储和操作:如果仅仅是在内存中进行数据存储,那就会导致以下问题: •数据随进程退出而消失:当服务器断电或Redis Server进程退出时,内 ...

  7. Spring Boot整合Jpa多数据源

    Spring Boot整合Jpa多数据源 本文是Spring Boot整合数据持久化方案的最后一篇,主要和大伙来聊聊Spring Boot整合Jpa多数据源问题.在Spring Boot整合JbdcT ...

  8. golang go-sql-driver gorm 数据库报错 bad connection

    开发Go项目中,有时候在有大量操作Mysql时,有时候会发生如下错误. "driver: bad connection" 原因 这是因为Mysql服务器主动关闭了Mysql链接. ...

  9. 叶胜超:女神币(IRIS)---最具100倍潜力的跨链项目!

    01 项目简介 IRIS,全称为IRISNet,IRIS以希腊彩虹女神Iris命名,所以币友习惯称为女神币,正如它命名的意义一样,它是各个链之间的信使,也是一个很有潜力的跨链项目,在文章结尾胜超再总结 ...

最新文章

  1. 漫画:禅道程序员的一天
  2. iOS 系统分析(一) 阅读内核准备知识
  3. 四个Webix实例:生成多种类型的JavaScript列表
  4. 解决Debian-7.1下Chrome浏览器字体难看的问题
  5. Vista下的程序集缓存卸载方法,也就是C:\Windows\assembly之下的卸载方法
  6. 本轮股市行情性质的分析
  7. Java实现算法导论中反复平方法模取幂
  8. java数据访问策略_java – 支持基于最近访问过的项目的高效启动策略的数据结构...
  9. RxJava尝试取代Handler初探
  10. MySQL查询select实例 【笔记】
  11. webpack(一)
  12. Ubuntu安装sasquatch时执行./build.sh报错:--no-check-certificate
  13. HTML5背景颜色表格作业,HTML快速入门5——不规则表格、表格背景、边框颜色
  14. 上善若水 (9月18日)
  15. vue3+aplayer+歌曲信息获取
  16. python如何撤回_python如何查看微信消息撤回
  17. 原画还是3D建模?业内发展趋势,你来权衡
  18. 记nexus2升级nexus3数据迁移
  19. 实训项目四 powerpoint 综合应用_抗震支吊架在机电安装项目上的综合应用,陕暖协建议收藏...
  20. VB.NET面向对象程序设计的基本概念

热门文章

  1. SetForceGroundWindow
  2. Ubuntu linux 关机、重启、注销 命令
  3. [笔记] systemverilog学习笔录
  4. centos 开机启动java_java程序在centos7里面开机自启动
  5. c++代码好玩_Py之pygame:有趣好玩—利用pygame库实现鱼儿自动实时目标跟踪(附完整代码)...
  6. python zipfile_Python中的zipfile模块使用详解
  7. oracle删除分区空间,Oracle 11g维护分区(三)——Dropping Partitions
  8. 优化算法 sklearn lr
  9. php jquery ajax裁剪图照片,php+jquery+ajax无刷新图片上传裁切,模拟flash头像上传实例...
  10. rancher k8s docker 关系_【环境搭建】Ubuntu20.04通过rke部署K8S