@@ -560,6 +560,10 @@ class TestSub {
560560 this . Name = name ;
561561 this . Age = age ;
562562 }
563+
564+ toJSONString ( ) : string {
565+ return JSON . stringify ( this ) ;
566+ }
563567}
564568
565569test ( 'test ABAC Scaling' , async ( ) => {
@@ -837,3 +841,31 @@ test('TestEnforceWithMatcher', async () => {
837841 expect ( await e . enforceWithMatcher ( m2 , 'data2_admin' , 'data1' , 'read' ) ) . toBe ( true ) ;
838842 expect ( await e . enforceWithMatcher ( m2 , 'data2_admin' , 'data1' , 'write' ) ) . toBe ( true ) ;
839843} ) ;
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