adapter, err := entAdapter.NewAdapter("mysql", fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8", config.Params.Mysql.DbUser, config.Params.Mysql.Password, config.Params.Mysql.Host, config.Params.Mysql.Port, config.Params.Mysql.DbName))
if err != nil {
log.Logger.Fatal(err.Error())
}
m, err := model.NewModelFromString(`
[request_definition]
r = sub, obj, act
[policy_definition]
p = sub, obj, act
[role_definition]
g = _, _
[policy_effect]
e = some(where (p.eft == allow))
[matchers]
m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act
`)
if err != nil {
return nil, err
}
auth, err = casbin.NewEnforcer(m, adapter)
if err != nil {
return nil, err
}
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x18d4878]
goroutine 89 [running]:
github.com/casbin/casbin/v2/persist.LoadPolicyLine(0xc00039d860, 0x20, 0xc0003cb0b0)
/Users/xinyi/go/pkg/mod/github.com/casbin/casbin/[email protected]/persist/adapter.go:42 +0x358
github.com/casbin/ent-adapter.loadPolicyLine(0xc0003e5b80, 0xc0003cb0b0)
/Users/xinyi/go/pkg/mod/github.com/casbin/[email protected]/adapter.go:336 +0x157
github.com/casbin/ent-adapter.(*Adapter).LoadPolicy(0xc000357400, 0xc0003cb0b0, 0xdc, 0x0)
/Users/xinyi/go/pkg/mod/github.com/casbin/[email protected]/adapter.go:124 +0x1e5
github.com/casbin/casbin/v2.(*Enforcer).LoadPolicy(0xc0003fe080, 0x0, 0x0)
/Users/xinyi/go/pkg/mod/github.com/casbin/casbin/[email protected]/enforcer.go:288 +0x1dd
github.com/casbin/casbin/v2.(*Enforcer).InitWithModelAndAdapter(0xc0003fe080, 0xc0003ca930, 0xb007120, 0xc000357400, 0xc000357400, 0x18c9c00)
/Users/xinyi/go/pkg/mod/github.com/casbin/casbin/[email protected]/enforcer.go:169 +0x112
github.com/casbin/casbin/v2.NewEnforcer(0xc00031d210, 0x2, 0x2, 0x0, 0x0, 0x0)
/Users/xinyi/go/pkg/mod/github.com/casbin/casbin/[email protected]/enforcer.go:105 +0x49d