@@ -120,8 +120,9 @@ public void enableCache(boolean enable) {
120120 * @param rvals Parameters for the enforcement check.
121121 * @return The result of the enforcement check.
122122 */
123+ @ Override
123124 public boolean enforce (Object ... rvals ) {
124- if (enableCache .get ()) {
125+ if (! enableCache .get ()) {
125126 return super .enforce (rvals );
126127 }
127128
@@ -143,6 +144,7 @@ public boolean enforce(Object... rvals) {
143144 /**
144145 * Loads the policy, clearing the cache if enabled.
145146 */
147+ @ Override
146148 public void loadPolicy () {
147149 if (enableCache == null || !enableCache .get ()){
148150 super .loadPolicy ();
@@ -160,6 +162,7 @@ public void loadPolicy() {
160162 * @param params Policy parameters.
161163 * @return Whether the addition was successful.
162164 */
165+ @ Override
163166 public boolean addPolicy (String ... params ) {
164167 if (!checkOneAndRemoveCache (params )) {
165168 return false ;
@@ -173,19 +176,35 @@ public boolean addPolicy(String... params) {
173176 * @param rules Policy rules.
174177 * @return Whether the addition was successful.
175178 */
179+ @ Override
176180 public boolean addPolicies (List <List <String >> rules ) {
177181 if (!checkManyAndRemoveCache (rules )) {
178182 return false ;
179183 }
180184 return super .addPolicies (rules );
181185 }
182186
187+ /**
188+ * Adds multiple policies while checking and removing the cache.
189+ *
190+ * @param rules Policy rules.
191+ * @return Whether the addition was successful.
192+ */
193+ @ Override
194+ public boolean addPolicies (String [][] rules ) {
195+ if (!checkManyAndRemoveCache (rules )) {
196+ return false ;
197+ }
198+ return super .addPolicies (rules );
199+ }
200+
183201 /**
184202 * Removes a single policy while checking and removing the cache.
185203 *
186204 * @param params Policy parameters.
187205 * @return Whether the removal was successful.
188206 */
207+ @ Override
189208 public boolean removePolicy (String ... params ) {
190209 if (!checkOneAndRemoveCache (params )) {
191210 return false ;
@@ -199,13 +218,28 @@ public boolean removePolicy(String... params) {
199218 * @param rules Policy rules.
200219 * @return Whether the removal was successful.
201220 */
221+ @ Override
202222 public boolean removePolicies (List <List <String >>rules ) {
203223 if (!checkManyAndRemoveCache (rules )) {
204224 return false ;
205225 }
206226 return super .removePolicies (rules );
207227 }
208228
229+ /**
230+ * Removes multiple policies while checking and removing the cache.
231+ *
232+ * @param rules Policy rules.
233+ * @return Whether the removal was successful.
234+ */
235+ @ Override
236+ public boolean removePolicies (String [][] rules ) {
237+ if (!checkManyAndRemoveCache (rules )) {
238+ return false ;
239+ }
240+ return super .removePolicies (rules );
241+ }
242+
209243 /**
210244 * Retrieves a cached result based on the given key.
211245 *
@@ -306,7 +340,7 @@ public void invalidateCache() {
306340 */
307341 private boolean checkOneAndRemoveCache (String ... params ) {
308342 if (enableCache .get ()) {
309- String key = getKey ((Object ) params );
343+ String key = getKey ((Object [] ) params );
310344 if (key != null ) {
311345 cache .delete (key );
312346 }
@@ -323,7 +357,25 @@ private boolean checkOneAndRemoveCache(String... params) {
323357 private boolean checkManyAndRemoveCache (List <List <String >> rules ) {
324358 if (!rules .isEmpty () && enableCache .get ()) {
325359 for (List <String > rule : rules ) {
326- String key = getKey (rule );
360+ String key = getKey (rule .toArray ());
361+ if (key != null ) {
362+ cache .delete (key );
363+ }
364+ }
365+ }
366+ return true ;
367+ }
368+
369+ /**
370+ * Checks and removes cache for multiple policies.
371+ *
372+ * @param rules Policy rules.
373+ * @return Whether the check was successful.
374+ */
375+ private boolean checkManyAndRemoveCache (String [][] rules ) {
376+ if (rules != null && enableCache .get ()) {
377+ for (String [] rule : rules ) {
378+ String key = getKey ((Object []) rule );
327379 if (key != null ) {
328380 cache .delete (key );
329381 }
0 commit comments