@@ -560,6 +560,10 @@ class TestSub {
560
560
this . Name = name ;
561
561
this . Age = age ;
562
562
}
563
+
564
+ toJSONString ( ) : string {
565
+ return JSON . stringify ( this ) ;
566
+ }
563
567
}
564
568
565
569
test ( 'test ABAC Scaling' , async ( ) => {
@@ -837,3 +841,31 @@ test('TestEnforceWithMatcher', async () => {
837
841
expect ( await e . enforceWithMatcher ( m2 , 'data2_admin' , 'data1' , 'read' ) ) . toBe ( true ) ;
838
842
expect ( await e . enforceWithMatcher ( m2 , 'data2_admin' , 'data1' , 'write' ) ) . toBe ( true ) ;
839
843
} ) ;
844
+
845
+ test ( 'TestEnforceWithEnableAcceptJsonRequest' , async ( ) => {
846
+ const e = await newEnforcer ( 'examples/abac_rule_model.conf' , 'examples/abac_rule_policy.csv' ) ;
847
+ e . enableAcceptJsonRequest ( true ) ;
848
+
849
+ const sub1 = new TestSub ( 'alice' , 16 ) . toJSONString ( ) ;
850
+ const sub2 = new TestSub ( 'alice' , 20 ) . toJSONString ( ) ;
851
+ const sub3 = new TestSub ( 'alice' , 65 ) . toJSONString ( ) ;
852
+
853
+ await testEnforce ( e , sub1 , '/data1' , 'read' , false ) ;
854
+ await testEnforce ( e , sub1 , '/data2' , 'read' , false ) ;
855
+ await testEnforce ( e , sub1 , '/data1' , 'write' , false ) ;
856
+ await testEnforce ( e , sub1 , '/data2' , 'write' , true ) ;
857
+ await testEnforce ( e , sub2 , '/data1' , 'read' , true ) ;
858
+ await testEnforce ( e , sub2 , '/data2' , 'read' , false ) ;
859
+ await testEnforce ( e , sub2 , '/data1' , 'write' , false ) ;
860
+ await testEnforce ( e , sub2 , '/data2' , 'write' , true ) ;
861
+ await testEnforce ( e , sub3 , '/data1' , 'read' , true ) ;
862
+ await testEnforce ( e , sub3 , '/data2' , 'read' , false ) ;
863
+ await testEnforce ( e , sub3 , '/data1' , 'write' , false ) ;
864
+ await testEnforce ( e , sub3 , '/data2' , 'write' , false ) ;
865
+
866
+ e . enableAcceptJsonRequest ( false ) ;
867
+ await testEnforce ( e , sub1 , '/data2' , 'write' , false ) ;
868
+ await testEnforce ( e , sub2 , '/data1' , 'read' , false ) ;
869
+ await testEnforce ( e , sub2 , '/data2' , 'write' , false ) ;
870
+ await testEnforce ( e , sub3 , '/data1' , 'read' , false ) ;
871
+ } ) ;
0 commit comments