MCPcopy
hub / github.com/apache/casbin / TestABACJsonRequest

Function TestABACJsonRequest

abac_test.go:106–148  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

104}
105
106func TestABACJsonRequest(t *testing.T) {
107 e, _ := NewEnforcer("examples/abac_model.conf")
108 e.EnableAcceptJsonRequest(true)
109
110 data1Json := `{ "Name": "data1", "Owner": "alice"}`
111 data2Json := `{ "Name": "data2", "Owner": "bob"}`
112
113 testEnforce(t, e, "alice", data1Json, "read", true)
114 testEnforce(t, e, "alice", data1Json, "write", true)
115 testEnforce(t, e, "alice", data2Json, "read", false)
116 testEnforce(t, e, "alice", data2Json, "write", false)
117 testEnforce(t, e, "bob", data1Json, "read", false)
118 testEnforce(t, e, "bob", data1Json, "write", false)
119 testEnforce(t, e, "bob", data2Json, "read", true)
120 testEnforce(t, e, "bob", data2Json, "write", true)
121
122 e, _ = NewEnforcer("examples/abac_not_using_policy_model.conf", "examples/abac_rule_effect_policy.csv")
123 e.EnableAcceptJsonRequest(true)
124
125 testEnforce(t, e, "alice", data1Json, "read", true)
126 testEnforce(t, e, "alice", data1Json, "write", true)
127 testEnforce(t, e, "alice", data2Json, "read", false)
128 testEnforce(t, e, "alice", data2Json, "write", false)
129
130 e, _ = NewEnforcer("examples/abac_rule_model.conf", "examples/abac_rule_policy.csv")
131 e.EnableAcceptJsonRequest(true)
132 sub1Json := `{"Name": "alice", "Age": 16}`
133 sub2Json := `{"Name": "alice", "Age": 20}`
134 sub3Json := `{"Name": "alice", "Age": 65}`
135
136 testEnforce(t, e, sub1Json, "/data1", "read", false)
137 testEnforce(t, e, sub1Json, "/data2", "read", false)
138 testEnforce(t, e, sub1Json, "/data1", "write", false)
139 testEnforce(t, e, sub1Json, "/data2", "write", true)
140 testEnforce(t, e, sub2Json, "/data1", "read", true)
141 testEnforce(t, e, sub2Json, "/data2", "read", false)
142 testEnforce(t, e, sub2Json, "/data1", "write", false)
143 testEnforce(t, e, sub2Json, "/data2", "write", true)
144 testEnforce(t, e, sub3Json, "/data1", "read", true)
145 testEnforce(t, e, sub3Json, "/data2", "read", false)
146 testEnforce(t, e, sub3Json, "/data1", "write", false)
147 testEnforce(t, e, sub3Json, "/data2", "write", false)
148}
149
150type testSub struct {
151 Name string

Callers

nothing calls this directly

Calls 3

NewEnforcerFunction · 0.85
testEnforceFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…