@@ -451,7 +451,7 @@ public void buildRoleLinks() {
451451 */
452452 private EnforceResult enforce (String matcher , Object ... rvals ) {
453453 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 " )));
455455 }
456456
457457 boolean compileCached = true ;
@@ -524,21 +524,11 @@ private EnforceResult enforce(String matcher, Object... rvals) {
524524
525525 for (int i = 0 ; i < policy .size (); i ++) {
526526 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
534527 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 );
539530
540531 Object result = expression .execute (parameters );
541- // Util.logPrint("Result: " + result);
542532
543533 if (result instanceof Boolean ) {
544534 if (!((boolean ) result )) {
@@ -600,7 +590,6 @@ private EnforceResult enforce(String matcher, Object... rvals) {
600590 }
601591
602592 Object result = expression .execute (parameters );
603- // Util.logPrint("Result: " + result);
604593
605594 if (streamEffector != null ) {
606595 if ((boolean ) result ) {
@@ -718,15 +707,24 @@ public boolean addNamedDomainMatchingFunc(String ptype, String name, BiPredicate
718707 return false ;
719708 }
720709
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 ));
730728 }
731729 }
732730
0 commit comments