@@ -451,7 +451,7 @@ public void buildRoleLinks() {
451
451
*/
452
452
private EnforceResult enforce (String matcher , Object ... rvals ) {
453
453
if (!enabled ) {
454
- return new EnforceResult (true , new ArrayList <>(Collections .singletonList ("The enforcer is not enable , allow all request " )));
454
+ return new EnforceResult (true , new ArrayList <>(Collections .singletonList ("The enforcer is not enabled , allow all requests " )));
455
455
}
456
456
457
457
boolean compileCached = true ;
@@ -524,21 +524,11 @@ private EnforceResult enforce(String matcher, Object... rvals) {
524
524
525
525
for (int i = 0 ; i < policy .size (); i ++) {
526
526
List <String > pvals = policy .get (i );
527
- if (pTokens .length != pvals .size ()) {
528
- throw new CasbinMatcherException ("invalid request size: expected " + pTokens .length +
529
- ", got " + pvals .size () + ", rvals: " + Arrays .toString (rvals ));
530
- }
531
-
532
- // Util.logPrint("Policy Rule: " + pvals);
533
- // Select the rule based on request size
534
527
Map <String , Object > parameters = new HashMap <>(rvals .length + pTokens .length );
535
- getRTokens (parameters , rvals );
536
- for (int j = 0 ; j < pTokens .length ; j ++) {
537
- parameters .put (pTokens [j ], pvals .get (j ));
538
- }
528
+ getPTokens (parameters , pType , pvals , pTokens );
529
+ getRTokens (parameters , rType , rvals );
539
530
540
531
Object result = expression .execute (parameters );
541
- // Util.logPrint("Result: " + result);
542
532
543
533
if (result instanceof Boolean ) {
544
534
if (!((boolean ) result )) {
@@ -600,7 +590,6 @@ private EnforceResult enforce(String matcher, Object... rvals) {
600
590
}
601
591
602
592
Object result = expression .execute (parameters );
603
- // Util.logPrint("Result: " + result);
604
593
605
594
if (streamEffector != null ) {
606
595
if ((boolean ) result ) {
@@ -718,15 +707,24 @@ public boolean addNamedDomainMatchingFunc(String ptype, String name, BiPredicate
718
707
return false ;
719
708
}
720
709
721
- private void getRTokens (Map <String , Object > parameters , Object ... rvals ) {
722
- for (Assertion assertion : model .model .get ("r" ).values ()) {
723
- if (!(rvals .length == assertion .tokens .length )) {
724
- continue ;
725
- }
726
- for (int j = 0 ; j < assertion .tokens .length ; j ++) {
727
- String token = assertion .tokens [j ];
728
- parameters .put (token , rvals [j ]);
729
- }
710
+ private void getRTokens (Map <String , Object > parameters , String rType , Object ... rvals ) {
711
+ String [] requestTokens = model .model .get ("r" ).get (rType ).tokens ;
712
+ if (requestTokens .length != rvals .length ) {
713
+ throw new CasbinMatcherException ("invalid request size: expected " + requestTokens .length +
714
+ ", got " + rvals .length + ", rvals: " + Arrays .toString (rvals ));
715
+ }
716
+ for (int i = 0 ; i < requestTokens .length ; i ++) {
717
+ parameters .put (requestTokens [i ], rvals [i ]);
718
+ }
719
+ }
720
+
721
+ private void getPTokens (Map <String , Object > parameters , String pType , List <String > pvals , String [] pTokens ) {
722
+ if (pTokens .length != pvals .size ()) {
723
+ throw new CasbinMatcherException ("invalid policy size: expected " + pTokens .length +
724
+ ", got " + pvals .size () + ", pvals: " + pvals );
725
+ }
726
+ for (int i = 0 ; i < pTokens .length ; i ++) {
727
+ parameters .put (pTokens [i ], pvals .get (i ));
730
728
}
731
729
}
732
730
0 commit comments