Iris——整合Gorm持久化的Casbin的Example
源代码: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相关推荐
- 跟着狂神学Redis(NoSql+环境配置+五大数据类型+三种特殊类型+Hyperloglog+Bitmap+事务+Jedis+SpringBoot整合+Redis持久化+...)
跟着狂神学Redis 狂神聊Redis 学习方式:不是为了面试和工作学习!仅仅是为了兴趣!兴趣才是最好的老师! 基本的理论先学习,然后将知识融汇贯通! 狂神的Redis课程安排: nosql 讲解 阿 ...
- 蒟蒻のgolang小窝(gin整合gorm完成一次清单实战~)
虽然辛苦,但我还是会选择那种滚烫的人生. 继续学习杜松子酒吧 又是一张让人能产生xcd的图呢!go的吉祥物总有种萌到欠打的感觉(不是) GORM 首先可以肯定的是,gorm上手很快,并且文档同样的中国 ...
- Iris——整合go-playground/validator参数校验Demo
源代码:https://gitee.com/shentuzhigang/mini-project/blob/master/iris_validator 解决方案 go.mod require (git ...
- springboot2整合Quartz持久化定时任务管理界面
此案例在天降风云博主的基础上进行了补充 Quartz提供两种基本作业存储类型.第一种类型叫做RAMJobStore,第二种类型叫做JDBC作业存储.在默认情况下Quartz将任务调度的运行信息保存在内 ...
- 1命名规则 sentinel_Spring Cloud Alibaba 整合 Sentinel 流控
前面我们都是直接通过集成sentinel的依赖,通过编码的方式配置规则等.对于集成到Spring Cloud中阿里已经有了一套开源框架spring-cloud-alibaba,就是用于将一系列的框架成 ...
- 跟我一起学Redis之Redis持久化必知必会
前言 Redis是出了名的速度快,那是因为在内存中进行数据存储和操作:如果仅仅是在内存中进行数据存储,那就会导致以下问题: •数据随进程退出而消失:当服务器断电或Redis Server进程退出时,内 ...
- Spring Boot整合Jpa多数据源
Spring Boot整合Jpa多数据源 本文是Spring Boot整合数据持久化方案的最后一篇,主要和大伙来聊聊Spring Boot整合Jpa多数据源问题.在Spring Boot整合JbdcT ...
- golang go-sql-driver gorm 数据库报错 bad connection
开发Go项目中,有时候在有大量操作Mysql时,有时候会发生如下错误. "driver: bad connection" 原因 这是因为Mysql服务器主动关闭了Mysql链接. ...
- 叶胜超:女神币(IRIS)---最具100倍潜力的跨链项目!
01 项目简介 IRIS,全称为IRISNet,IRIS以希腊彩虹女神Iris命名,所以币友习惯称为女神币,正如它命名的意义一样,它是各个链之间的信使,也是一个很有潜力的跨链项目,在文章结尾胜超再总结 ...
最新文章
- 漫画:禅道程序员的一天
- iOS 系统分析(一) 阅读内核准备知识
- 四个Webix实例:生成多种类型的JavaScript列表
- 解决Debian-7.1下Chrome浏览器字体难看的问题
- Vista下的程序集缓存卸载方法,也就是C:\Windows\assembly之下的卸载方法
- 本轮股市行情性质的分析
- Java实现算法导论中反复平方法模取幂
- java数据访问策略_java – 支持基于最近访问过的项目的高效启动策略的数据结构...
- RxJava尝试取代Handler初探
- MySQL查询select实例 【笔记】
- webpack(一)
- Ubuntu安装sasquatch时执行./build.sh报错:--no-check-certificate
- HTML5背景颜色表格作业,HTML快速入门5——不规则表格、表格背景、边框颜色
- 上善若水 (9月18日)
- vue3+aplayer+歌曲信息获取
- python如何撤回_python如何查看微信消息撤回
- 原画还是3D建模?业内发展趋势,你来权衡
- 记nexus2升级nexus3数据迁移
- 实训项目四 powerpoint 综合应用_抗震支吊架在机电安装项目上的综合应用,陕暖协建议收藏...
- VB.NET面向对象程序设计的基本概念
热门文章
- SetForceGroundWindow
- Ubuntu linux 关机、重启、注销 命令
- [笔记] systemverilog学习笔录
- centos 开机启动java_java程序在centos7里面开机自启动
- c++代码好玩_Py之pygame:有趣好玩—利用pygame库实现鱼儿自动实时目标跟踪(附完整代码)...
- python zipfile_Python中的zipfile模块使用详解
- oracle删除分区空间,Oracle 11g维护分区(三)——Dropping Partitions
- 优化算法 sklearn lr
- php jquery ajax裁剪图照片,php+jquery+ajax无刷新图片上传裁切,模拟flash头像上传实例...
- rancher k8s docker 关系_【环境搭建】Ubuntu20.04通过rke部署K8S