(t *testing.T)
| 104 | } |
| 105 | |
| 106 | func 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 | |
| 150 | type testSub struct { |
| 151 | Name string |
nothing calls this directly
no test coverage detected
searching dependent graphs…