You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ma...@apache.org on 2017/06/10 11:25:50 UTC

[05/50] archiva git commit: Add cache reset after configuration save

Add cache reset after configuration save


Project: http://git-wip-us.apache.org/repos/asf/archiva/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/593d69f5
Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/593d69f5
Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/593d69f5

Branch: refs/heads/citest
Commit: 593d69f52eae0b0187a817212c29388968a2add8
Parents: 4932324
Author: Martin Stockhammer <ma...@apache.org>
Authored: Tue Oct 25 22:43:09 2016 +0200
Committer: Martin Stockhammer <ma...@apache.org>
Committed: Tue Oct 25 22:43:09 2016 +0200

----------------------------------------------------------------------
 .../archiva/web/security/ArchivaRbacManager.java      | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/archiva/blob/593d69f5/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaRbacManager.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaRbacManager.java b/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaRbacManager.java
index 143f3c2..6b2eb9e 100644
--- a/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaRbacManager.java
+++ b/archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaRbacManager.java
@@ -98,6 +98,8 @@ public class ArchivaRbacManager
             List<String> rbacManagerIds =
                 redbackRuntimeConfigurationAdmin.getRedbackRuntimeConfiguration().getRbacManagerImpls();
 
+            clearCaches();
+
             if ( rbacManagerIds.isEmpty() )
             {
                 rbacManagerIds.add( RedbackRuntimeConfigurationAdmin.DEFAULT_RBAC_MANAGER_IMPL );
@@ -113,6 +115,7 @@ public class ArchivaRbacManager
 
                 rbacManagersPerId.put( id, rbacManager );
             }
+
         }
         catch ( RepositoryAdminException e )
         {
@@ -122,12 +125,23 @@ public class ArchivaRbacManager
         }
     }
 
+    private void clearCaches() {
+        resourcesCache.clear();
+        operationsCache.clear();
+        permissionsCache.clear();
+        rolesCache.clear();
+        userAssignmentsCache.clear();
+        userPermissionsCache.clear();
+        effectiveRoleSetCache.clear();
+    }
+
     protected RBACManager getRbacManagerForWrite()
     {
         for ( RBACManager rbacManager : this.rbacManagersPerId.values() )
         {
             if ( !rbacManager.isReadOnly() )
             {
+                log.debug("Writable Rbac manager {}", rbacManager.getDescriptionKey());
                 return rbacManager;
             }
         }