AAA-180: Fix Dynamic authorization 33/87733/1
authorVenkatrangan Govindarajan <vgovindarajan@luminanetworks.com>
Thu, 13 Feb 2020 08:56:39 +0000 (14:26 +0530)
committerRobert Varga <nite@hq.sk>
Sat, 15 Feb 2020 19:07:30 +0000 (19:07 +0000)
Repeated trials indicate the initfilter from shiro is never invoked for
this filter causing the problem. This patch instead uses the other metod(ProcessPAthConfig)
for initialization.

Signed-off-by: Venkatrangan Govindarajan <vgovindarajan@luminanetworks.com>
Change-Id: I30195bf745ac30f0cfd59021cb0b2fe524bede02
(cherry picked from commit 5b35f181c0315f5bcb99f95bd9a2ab4ea92122ef)

aaa-shiro/impl/src/main/java/org/opendaylight/aaa/shiro/realm/MDSALDynamicAuthorizationFilter.java
aaa-shiro/impl/src/test/java/org/opendaylight/aaa/shiro/realm/MDSALDynamicAuthorizationFilterTest.java

index d25218d3830001d3a37fc95391fa0fa28cc47c56..9b4e9653bd0fb19a0317400e23777b660f7bb679 100644 (file)
@@ -17,6 +17,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Optional;
 import java.util.concurrent.ExecutionException;
+import javax.servlet.Filter;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
@@ -64,11 +65,12 @@ public class MDSALDynamicAuthorizationFilter extends AuthorizationFilter
     }
 
     @Override
-    protected void onFilterConfigSet() throws Exception {
+    public Filter processPathConfig(String path, String config) {
         try (ReadTransaction tx = dataBroker.newReadOnlyTransaction()) {
             authContainer = tx.read(AUTHZ_CONTAINER.getDatastoreType(), AUTHZ_CONTAINER.getRootIdentifier());
         }
         this.reg = dataBroker.registerDataTreeChangeListener(AUTHZ_CONTAINER, this);
+        return super.processPathConfig(path, config);
     }
 
     @Override
index 3934ee5d934aa62529bf98daae72c7b97008e199..278e558c3d2238662226b10314dff178a0ac37f1 100644 (file)
@@ -20,7 +20,6 @@ import com.google.common.collect.Lists;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
-import javax.servlet.FilterConfig;
 import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
@@ -79,7 +78,7 @@ public class MDSALDynamicAuthorizationFilterTest {
             ThreadLocals.DATABROKER_TL.remove();
         }
 
-        ret.init(mock(FilterConfig.class));
+        ret.processPathConfig("test-path","test-config");
         return ret;
     }