This is an automated email from the ASF dual-hosted git repository. martin_s pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/archiva-redback-core.git
The following commit(s) were added to refs/heads/master by this push: new 87e8bba Changing some generic interfaces 87e8bba is described below commit 87e8bba27c6aa783a97ff3083cf804f532768145 Author: Martin Stockhammer <marti...@apache.org> AuthorDate: Sun Apr 8 16:33:30 2018 +0200 Changing some generic interfaces --- .../redback/authorization/rbac/RbacAuthorizer.java | 4 +- .../redback/management/DataManagementTest.java | 4 +- .../security/LockedAdminEnvironmentCheck.java | 2 +- .../services/DefaultRoleManagementService.java | 38 ++--- .../redback/rest/services/DefaultUserService.java | 2 +- .../archiva/redback/rbac/AbstractRBACManager.java | 77 ++++++---- .../apache/archiva/redback/rbac/RBACManager.java | 36 ++--- .../java/org/apache/archiva/redback/rbac/Role.java | 2 +- .../redback/rbac/cached/CachedRbacManager.java | 162 +++++++++++++++------ .../archiva/redback/rbac/jpa/JpaRbacManager.java | 38 +++-- .../archiva/redback/rbac/jpa/model/JpaRole.java | 5 +- .../archiva/redback/rbac/ldap/LdapRbacManager.java | 107 ++++++++++++-- .../role/processor/DefaultRoleModelProcessor.java | 6 +- .../redback/role/AbstractRoleManagerTest.java | 2 +- .../redback/tests/AbstractRbacManagerTestCase.java | 12 +- 15 files changed, 339 insertions(+), 158 deletions(-) diff --git a/redback-authorization/redback-authorization-providers/redback-authorization-rbac/src/main/java/org/apache/archiva/redback/authorization/rbac/RbacAuthorizer.java b/redback-authorization/redback-authorization-providers/redback-authorization-rbac/src/main/java/org/apache/archiva/redback/authorization/rbac/RbacAuthorizer.java index 33dde90..888c508 100644 --- a/redback-authorization/redback-authorization-providers/redback-authorization-rbac/src/main/java/org/apache/archiva/redback/authorization/rbac/RbacAuthorizer.java +++ b/redback-authorization/redback-authorization-providers/redback-authorization-rbac/src/main/java/org/apache/archiva/redback/authorization/rbac/RbacAuthorizer.java @@ -87,7 +87,7 @@ public class RbacAuthorizer if ( principal != null ) { // Set permissions = manager.getAssignedPermissions( principal.toString(), operation ); - Map<String, List<Permission>> permissionMap = manager.getAssignedPermissionMap( principal ); + Map<String, List<? extends Permission>> permissionMap = manager.getAssignedPermissionMap( principal ); if ( permissionMap.keySet().contains( operation ) ) { @@ -116,7 +116,7 @@ public class RbacAuthorizer if ( !guest.isLocked() ) { // Set permissions = manager.getAssignedPermissions( principal.toString(), operation ); - Map<String, List<Permission>> permissionMap = manager.getAssignedPermissionMap( guest.getUsername() ); + Map<String, List<? extends Permission>> permissionMap = manager.getAssignedPermissionMap( guest.getUsername() ); if ( permissionMap.keySet().contains( operation ) ) { diff --git a/redback-data-management/src/test/java/org/apache/archiva/redback/management/DataManagementTest.java b/redback-data-management/src/test/java/org/apache/archiva/redback/management/DataManagementTest.java index c8920c6..77c44de 100644 --- a/redback-data-management/src/test/java/org/apache/archiva/redback/management/DataManagementTest.java +++ b/redback-data-management/src/test/java/org/apache/archiva/redback/management/DataManagementTest.java @@ -254,8 +254,8 @@ public class DataManagementTest dataManagementTool.restoreRBACDatabase( manager, targetDirectory ); - List<Role> roles = manager.getAllRoles(); - List<UserAssignment> assignments = manager.getAllUserAssignments(); + List<? extends Role> roles = manager.getAllRoles(); + List<? extends UserAssignment> assignments = manager.getAllUserAssignments(); assertEquals( 4, roles.size() ); assertEquals( 2, assignments.size() ); assertEquals( 6, manager.getAllOperations().size() ); diff --git a/redback-integrations/redback-common-integrations/src/main/java/org/apache/archiva/redback/integration/checks/security/LockedAdminEnvironmentCheck.java b/redback-integrations/redback-common-integrations/src/main/java/org/apache/archiva/redback/integration/checks/security/LockedAdminEnvironmentCheck.java index 8d05e68..3580637 100644 --- a/redback-integrations/redback-common-integrations/src/main/java/org/apache/archiva/redback/integration/checks/security/LockedAdminEnvironmentCheck.java +++ b/redback-integrations/redback-common-integrations/src/main/java/org/apache/archiva/redback/integration/checks/security/LockedAdminEnvironmentCheck.java @@ -76,7 +76,7 @@ public class LockedAdminEnvironmentCheck List<String> roles = new ArrayList<String>(); roles.add( RedbackRoleConstants.SYSTEM_ADMINISTRATOR_ROLE ); - List<UserAssignment> systemAdminstrators; + List<? extends UserAssignment> systemAdminstrators; try { systemAdminstrators = rbacManager.getUserAssignmentsForRoles( roles ); diff --git a/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultRoleManagementService.java b/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultRoleManagementService.java index ee3fbb0..9ad643b 100644 --- a/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultRoleManagementService.java +++ b/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultRoleManagementService.java @@ -253,7 +253,7 @@ public class DefaultRoleManagementService } try { - List<org.apache.archiva.redback.rbac.Role> roles = + List<? extends org.apache.archiva.redback.rbac.Role> roles = filterAssignableRoles( rbacManager.getEffectivelyAssignedRoles( username ) ); List<Role> effectivelyAssignedRoles = new ArrayList<Role>( roles.size() ); @@ -312,7 +312,7 @@ public class DefaultRoleManagementService { try { - List<org.apache.archiva.redback.rbac.Role> roles = rbacManager.getAllRoles(); + List<? extends org.apache.archiva.redback.rbac.Role> roles = rbacManager.getAllRoles(); if ( roles == null ) { @@ -341,7 +341,7 @@ public class DefaultRoleManagementService { try { - List<org.apache.archiva.redback.rbac.Role> roles = rbacManager.getAllRoles(); + List<? extends org.apache.archiva.redback.rbac.Role> roles = rbacManager.getAllRoles(); if ( roles == null ) { @@ -365,8 +365,8 @@ public class DefaultRoleManagementService } } - private List<org.apache.archiva.redback.rbac.Role> filterAssignableRoles( - Collection<org.apache.archiva.redback.rbac.Role> roles ) + private List<? extends org.apache.archiva.redback.rbac.Role> filterAssignableRoles( + Collection<? extends org.apache.archiva.redback.rbac.Role> roles ) { List<org.apache.archiva.redback.rbac.Role> assignableRoles = new ArrayList<org.apache.archiva.redback.rbac.Role>( roles.size() ); @@ -388,13 +388,13 @@ public class DefaultRoleManagementService org.apache.archiva.redback.rbac.Role rbacRole = rbacManager.getRole( roleName ); Role role = new Role( rbacRole ); - Map<String, org.apache.archiva.redback.rbac.Role> parentRoles = rbacManager.getParentRoles( rbacRole ); + Map<String, ? extends org.apache.archiva.redback.rbac.Role> parentRoles = rbacManager.getParentRoles( rbacRole ); for ( String parentRoleName : parentRoles.keySet() ) { role.getParentRoleNames().add( parentRoleName ); } - List<UserAssignment> userAssignments = rbacManager.getUserAssignmentsForRoles( Arrays.asList( roleName ) ); + List<? extends UserAssignment> userAssignments = rbacManager.getUserAssignmentsForRoles( Arrays.asList( roleName ) ); if ( userAssignments != null ) { @@ -414,7 +414,7 @@ public class DefaultRoleManagementService if ( !role.getParentRoleNames().isEmpty() ) { - List<UserAssignment> userParentAssignments = + List<? extends UserAssignment> userParentAssignments = rbacManager.getUserAssignmentsForRoles( parentRoles.keySet() ); if ( userParentAssignments != null ) { @@ -614,7 +614,7 @@ public class DefaultRoleManagementService rbacManager.saveUserAssignment( assignment ); } - List<org.apache.archiva.redback.rbac.Role> allRoles = + List<? extends org.apache.archiva.redback.rbac.Role> allRoles = filterRolesForCurrentUserAccess( rbacManager.getAllRoles() ); List<ModelApplication> modelApplications = roleManager.getModel().getApplications(); @@ -628,7 +628,7 @@ public class DefaultRoleManagementService applicationRoles.setDescription( modelApplication.getDescription() ); applicationRoles.setName( modelApplication.getId() ); - Collection<org.apache.archiva.redback.rbac.Role> appRoles = + Collection<? extends org.apache.archiva.redback.rbac.Role> appRoles = filterApplicationRoles( modelApplication, allRoles, modelApplication.getTemplates() ); List<String> roleNames = new ArrayList<String>( toRoleNames( appRoles ) ); @@ -750,7 +750,7 @@ public class DefaultRoleManagementService //---------------------------------------------------------------- private org.apache.archiva.redback.rbac.Role isInList( String roleName, - Collection<org.apache.archiva.redback.rbac.Role> roles ) + Collection<? extends org.apache.archiva.redback.rbac.Role> roles ) { for ( org.apache.archiva.redback.rbac.Role role : roles ) { @@ -762,8 +762,8 @@ public class DefaultRoleManagementService return null; } - private Collection<org.apache.archiva.redback.rbac.Role> filterApplicationRoles( ModelApplication application, - List<org.apache.archiva.redback.rbac.Role> allRoles, + private Collection<? extends org.apache.archiva.redback.rbac.Role> filterApplicationRoles( ModelApplication application, + List<? extends org.apache.archiva.redback.rbac.Role> allRoles, List<ModelTemplate> applicationTemplates ) { Set<org.apache.archiva.redback.rbac.Role> applicationRoles = @@ -810,7 +810,7 @@ public class DefaultRoleManagementService return false; } - private List<String> toRoleNames( Collection<org.apache.archiva.redback.rbac.Role> roles ) + private List<String> toRoleNames( Collection<? extends org.apache.archiva.redback.rbac.Role> roles ) { List<String> names = new ArrayList<String>( roles.size() ); @@ -847,7 +847,7 @@ public class DefaultRoleManagementService } private Set<String> discoverResources( List<ModelTemplate> applicationTemplates, - Collection<org.apache.archiva.redback.rbac.Role> roles ) + Collection<? extends org.apache.archiva.redback.rbac.Role> roles ) { Set<String> resources = new HashSet<String>(); for ( ModelTemplate modelTemplate : applicationTemplates ) @@ -876,8 +876,8 @@ public class DefaultRoleManagementService * @throws RedbackServiceException * */ - protected List<org.apache.archiva.redback.rbac.Role> filterRolesForCurrentUserAccess( - List<org.apache.archiva.redback.rbac.Role> roleList ) + protected List<? extends org.apache.archiva.redback.rbac.Role> filterRolesForCurrentUserAccess( + List<? extends org.apache.archiva.redback.rbac.Role> roleList ) throws RedbackServiceException { RedbackRequestInformation redbackRequestInformation = RedbackAuthenticationThreadLocal.get(); @@ -892,12 +892,12 @@ public class DefaultRoleManagementService new ArrayList<org.apache.archiva.redback.rbac.Role>(); try { - Map<String, List<Permission>> assignedPermissionMap = rbacManager.getAssignedPermissionMap( currentUser ); + Map<String, List<? extends Permission>> assignedPermissionMap = rbacManager.getAssignedPermissionMap( currentUser ); List<String> resourceGrants = new ArrayList<String>(); if ( assignedPermissionMap.containsKey( RedbackRoleConstants.USER_MANAGEMENT_ROLE_GRANT_OPERATION ) ) { - List<Permission> roleGrantPermissions = + List<? extends Permission> roleGrantPermissions = assignedPermissionMap.get( RedbackRoleConstants.USER_MANAGEMENT_ROLE_GRANT_OPERATION ); for ( Permission permission : roleGrantPermissions ) diff --git a/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultUserService.java b/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultUserService.java index d85ad41..8759da4 100644 --- a/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultUserService.java +++ b/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultUserService.java @@ -842,7 +842,7 @@ public class DefaultUserService { try { - Set<org.apache.archiva.redback.rbac.Permission> permissions = + Set<? extends org.apache.archiva.redback.rbac.Permission> permissions = rbacManager.getAssignedPermissions( userName ); // FIXME return guest permissions !! List<Permission> userPermissions = new ArrayList<Permission>( permissions.size() ); diff --git a/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/AbstractRBACManager.java b/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/AbstractRBACManager.java index 537ad16..eaba5ce 100644 --- a/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/AbstractRBACManager.java +++ b/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/AbstractRBACManager.java @@ -30,6 +30,8 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; /** * AbstractRBACManager @@ -45,18 +47,21 @@ public abstract class AbstractRBACManager private Resource globalResource; + @Override @PostConstruct public void initialize() { //no op } + @Override public boolean isFinalImplementation() { return false; } + @Override public void addListener( RBACManagerListener listener ) { if ( !listeners.contains( listener ) ) @@ -65,6 +70,7 @@ public abstract class AbstractRBACManager } } + @Override public void removeListener( RBACManagerListener listener ) { listeners.remove( listener ); @@ -179,36 +185,42 @@ public abstract class AbstractRBACManager } } + @Override public void removeRole( String roleName ) throws RbacObjectNotFoundException, RbacManagerException { removeRole( getRole( roleName ) ); } + @Override public void removePermission( String permissionName ) throws RbacObjectNotFoundException, RbacManagerException { removePermission( getPermission( permissionName ) ); } + @Override public void removeOperation( String operationName ) throws RbacObjectNotFoundException, RbacManagerException { removeOperation( getOperation( operationName ) ); } + @Override public void removeResource( String resourceIdentifier ) throws RbacObjectNotFoundException, RbacManagerException { removeResource( getResource( resourceIdentifier ) ); } + @Override public void removeUserAssignment( String principal ) throws RbacObjectNotFoundException, RbacManagerException { removeUserAssignment( getUserAssignment( principal ) ); } + @Override public boolean resourceExists( Resource resource ) { try @@ -221,6 +233,7 @@ public abstract class AbstractRBACManager } } + @Override public boolean resourceExists( String identifier ) { try @@ -241,6 +254,7 @@ public abstract class AbstractRBACManager return false; } + @Override public boolean operationExists( Operation operation ) { try @@ -253,6 +267,7 @@ public abstract class AbstractRBACManager } } + @Override public boolean operationExists( String name ) { try @@ -273,6 +288,7 @@ public abstract class AbstractRBACManager return false; } + @Override public boolean permissionExists( Permission permission ) { try @@ -285,6 +301,7 @@ public abstract class AbstractRBACManager } } + @Override public boolean permissionExists( String name ) { try @@ -305,6 +322,7 @@ public abstract class AbstractRBACManager return false; } + @Override public boolean roleExists( Role role ) throws RbacManagerException { @@ -318,6 +336,7 @@ public abstract class AbstractRBACManager } } + @Override public boolean roleExists( String name ) throws RbacManagerException { @@ -339,6 +358,7 @@ public abstract class AbstractRBACManager return false; } + @Override public boolean userAssignmentExists( String principal ) { try @@ -359,6 +379,7 @@ public abstract class AbstractRBACManager return false; } + @Override public boolean userAssignmentExists( UserAssignment assignment ) { try @@ -380,7 +401,8 @@ public abstract class AbstractRBACManager * @throws RbacObjectNotFoundException * @throws RbacManagerException */ - public Set<Permission> getAssignedPermissions( String principal ) + @Override + public Set<? extends Permission> getAssignedPermissions( String principal ) throws RbacObjectNotFoundException, RbacManagerException { @@ -426,33 +448,18 @@ public abstract class AbstractRBACManager * @throws RbacObjectNotFoundException * @throws RbacManagerException */ - public Map<String, List<Permission>> getAssignedPermissionMap( String principal ) + @Override + public Map<String, List<? extends Permission>> getAssignedPermissionMap( String principal ) throws RbacObjectNotFoundException, RbacManagerException { return getPermissionMapByOperation( getAssignedPermissions( principal ) ); } - private Map<String, List<Permission>> getPermissionMapByOperation( Collection<Permission> permissions ) + private Map<String, List<? extends Permission>> getPermissionMapByOperation( Collection<? extends Permission> permissions ) { - Map<String, List<Permission>> userPermMap = new HashMap<String, List<Permission>>(); - - for ( Permission permission : permissions ) - { - List<Permission> permList = userPermMap.get( permission.getOperation().getName() ); - - if ( permList != null ) - { - permList.add( permission ); - } - else - { - List<Permission> newPermList = new ArrayList<Permission>( permissions.size() ); - newPermList.add( permission ); - userPermMap.put( permission.getOperation().getName(), newPermList ); - } - } - - return userPermMap; + Map<String, List<? extends Permission>> tList = new HashMap<>( ); + tList.putAll( permissions.stream().collect( Collectors.<Permission, String>groupingBy( p -> p.getOperation( ).getName( ) ) ) ); + return tList; } private void gatherUniquePermissions( Role role, Collection<Permission> coll ) @@ -471,8 +478,8 @@ public abstract class AbstractRBACManager if ( role.hasChildRoles() ) { - Map<String, Role> childRoles = getChildRoles( role ); - Iterator<Role> it = childRoles.values().iterator(); + Map<String, ? extends Role> childRoles = getChildRoles( role ); + Iterator<? extends Role> it = childRoles.values().iterator(); while ( it.hasNext() ) { Role child = it.next(); @@ -481,6 +488,7 @@ public abstract class AbstractRBACManager } } + @Override public List<Role> getAllAssignableRoles() throws RbacManagerException, RbacObjectNotFoundException { @@ -509,6 +517,7 @@ public abstract class AbstractRBACManager * @throws RbacObjectNotFoundException * @throws RbacManagerException */ + @Override public Collection<Role> getAssignedRoles( String principal ) throws RbacObjectNotFoundException, RbacManagerException { @@ -526,6 +535,7 @@ public abstract class AbstractRBACManager * @throws RbacObjectNotFoundException * @throws RbacManagerException */ + @Override public Collection<Role> getAssignedRoles( UserAssignment ua ) throws RbacObjectNotFoundException, RbacManagerException { @@ -604,6 +614,7 @@ public abstract class AbstractRBACManager } } + @Override public Collection<Role> getEffectivelyAssignedRoles( String principal ) throws RbacObjectNotFoundException, RbacManagerException { @@ -653,6 +664,7 @@ public abstract class AbstractRBACManager * @throws RbacManagerException * @throws RbacObjectNotFoundException */ + @Override public Collection<Role> getEffectivelyUnassignedRoles( String principal ) throws RbacManagerException, RbacObjectNotFoundException { @@ -672,6 +684,7 @@ public abstract class AbstractRBACManager * @throws RbacManagerException * @throws RbacObjectNotFoundException */ + @Override public Collection<Role> getUnassignedRoles( String principal ) throws RbacManagerException, RbacObjectNotFoundException { @@ -684,6 +697,7 @@ public abstract class AbstractRBACManager return CollectionUtils.subtract( allRoles, assignedRoles ); } + @Override public Resource getGlobalResource() throws RbacManagerException { @@ -696,6 +710,7 @@ public abstract class AbstractRBACManager return globalResource; } + @Override public void addChildRole( Role role, Role childRole ) throws RbacObjectInvalidException, RbacManagerException { @@ -703,7 +718,8 @@ public abstract class AbstractRBACManager role.addChildRoleName( childRole.getName() ); } - public Map<String, Role> getChildRoles( Role role ) + @Override + public Map<String, ? extends Role> getChildRoles( Role role ) throws RbacManagerException { Map<String, Role> childRoles = new HashMap<String, Role>(); @@ -759,7 +775,8 @@ public abstract class AbstractRBACManager return childRoles; } - public Map<String, Role> getParentRoles( Role role ) + @Override + public Map<String, ? extends Role> getParentRoles( Role role ) throws RbacManagerException { Map<String, Role> parentRoles = new HashMap<String, Role>(); @@ -768,7 +785,7 @@ public abstract class AbstractRBACManager { if ( !r.getName().equals( role.getName() ) ) { - Set<Role> effectiveRoles = getEffectiveRoles( r ); + Set<? extends Role> effectiveRoles = getEffectiveRoles( r ); for ( Role currentRole : effectiveRoles ) { if ( currentRole.getName().equals( role.getName() ) ) @@ -784,7 +801,8 @@ public abstract class AbstractRBACManager return parentRoles; } - public Set<Role> getEffectiveRoles( Role role ) + @Override + public Set<? extends Role> getEffectiveRoles( Role role ) throws RbacObjectNotFoundException, RbacManagerException { Set<Role> roleSet = new HashSet<Role>(); @@ -793,7 +811,8 @@ public abstract class AbstractRBACManager return roleSet; } - public Map<String, Role> getRoles( Collection<String> roleNames ) + @Override + public Map<String, ? extends Role> getRoles( Collection<String> roleNames ) throws RbacObjectNotFoundException, RbacManagerException { Map<String, Role> roleMap = new HashMap<String, Role>(); diff --git a/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/RBACManager.java b/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/RBACManager.java index 34cdcdf..9299cb0 100644 --- a/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/RBACManager.java +++ b/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/RBACManager.java @@ -81,28 +81,28 @@ public interface RBACManager Role getRole( String roleName ) throws RbacObjectNotFoundException, RbacManagerException; - Map<String, Role> getRoles( Collection<String> roleNames ) + Map<String, ? extends Role> getRoles( Collection<String> roleNames ) throws RbacObjectNotFoundException, RbacManagerException; void addChildRole( Role role, Role childRole ) throws RbacObjectInvalidException, RbacManagerException; - Map<String, Role> getChildRoles( Role role ) + Map<String, ? extends Role> getChildRoles( Role role ) throws RbacManagerException; - Map<String, Role> getParentRoles( Role role ) + Map<String, ? extends Role> getParentRoles( Role role ) throws RbacManagerException; /** * Method getRoles */ - List<Role> getAllRoles() + List<? extends Role> getAllRoles() throws RbacManagerException; /** * Method getEffectiveRoles */ - Set<Role> getEffectiveRoles( Role role ) + Set<? extends Role> getEffectiveRoles( Role role ) throws RbacObjectNotFoundException, RbacManagerException; /** @@ -169,7 +169,7 @@ public interface RBACManager Permission getPermission( String permissionName ) throws RbacObjectNotFoundException, RbacManagerException; - List<Permission> getAllPermissions() + List<? extends Permission> getAllPermissions() throws RbacManagerException; void removePermission( Permission permission ) @@ -213,7 +213,7 @@ public interface RBACManager Operation getOperation( String operationName ) throws RbacObjectNotFoundException, RbacManagerException; - List<Operation> getAllOperations() + List<? extends Operation> getAllOperations() throws RbacManagerException; void removeOperation( Operation operation ) @@ -249,7 +249,7 @@ public interface RBACManager Resource getResource( String resourceIdentifier ) throws RbacObjectNotFoundException, RbacManagerException; - List<Resource> getAllResources() + List<? extends Resource> getAllResources() throws RbacManagerException; void removeResource( Resource resource ) @@ -293,13 +293,13 @@ public interface RBACManager /** * Method getAssignments */ - List<UserAssignment> getAllUserAssignments() + List<? extends UserAssignment> getAllUserAssignments() throws RbacManagerException; /** * Method getUserAssignmentsForRoless */ - List<UserAssignment> getUserAssignmentsForRoles( Collection<String> roleNames ) + List<? extends UserAssignment> getUserAssignmentsForRoles( Collection<String> roleNames ) throws RbacManagerException; /** @@ -333,7 +333,7 @@ public interface RBACManager * @throws RbacObjectNotFoundException * @throws RbacManagerException */ - Collection<Role> getAssignedRoles( String principal ) + Collection<? extends Role> getAssignedRoles( String principal ) throws RbacObjectNotFoundException, RbacManagerException; /** @@ -342,7 +342,7 @@ public interface RBACManager * @param userAssignment * @return Collection of {@link Role} objects for the provided UserAssignment. */ - Collection<Role> getAssignedRoles( UserAssignment userAssignment ) + Collection<? extends Role> getAssignedRoles( UserAssignment userAssignment ) throws RbacObjectNotFoundException, RbacManagerException; /** @@ -354,7 +354,7 @@ public interface RBACManager * @throws RbacManagerException * @throws RbacObjectNotFoundException */ - Collection<Role> getEffectivelyUnassignedRoles( String principal ) + Collection<? extends Role> getEffectivelyUnassignedRoles( String principal ) throws RbacManagerException, RbacObjectNotFoundException; /** @@ -365,7 +365,7 @@ public interface RBACManager * @throws RbacObjectNotFoundException * @throws RbacManagerException */ - Collection<Role> getEffectivelyAssignedRoles( String principal ) + Collection<? extends Role> getEffectivelyAssignedRoles( String principal ) throws RbacObjectNotFoundException, RbacManagerException; /** @@ -376,7 +376,7 @@ public interface RBACManager * @throws RbacManagerException * @throws RbacObjectNotFoundException */ - Collection<Role> getUnassignedRoles( String principal ) + Collection<? extends Role> getUnassignedRoles( String principal ) throws RbacManagerException, RbacObjectNotFoundException; /** @@ -388,7 +388,7 @@ public interface RBACManager * @throws RbacObjectNotFoundException * @throws RbacManagerException */ - Set<Permission> getAssignedPermissions( String principal ) + Set<? extends Permission> getAssignedPermissions( String principal ) throws RbacObjectNotFoundException, RbacManagerException; /** @@ -399,7 +399,7 @@ public interface RBACManager * @throws RbacObjectNotFoundException * @throws RbacManagerException */ - Map<String, List<Permission>> getAssignedPermissionMap( String principal ) + Map<String, List<? extends Permission>> getAssignedPermissionMap( String principal ) throws RbacObjectNotFoundException, RbacManagerException; /** @@ -409,7 +409,7 @@ public interface RBACManager * @throws RbacManagerException * @throws RbacObjectNotFoundException */ - List<Role> getAllAssignableRoles() + List<? extends Role> getAllAssignableRoles() throws RbacManagerException, RbacObjectNotFoundException; /** diff --git a/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/Role.java b/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/Role.java index d1f293e..3e2405e 100644 --- a/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/Role.java +++ b/redback-rbac/redback-rbac-model/src/main/java/org/apache/archiva/redback/rbac/Role.java @@ -77,7 +77,7 @@ public interface Role /** * Method getPermissions */ - List<Permission> getPermissions(); + List<? extends Permission> getPermissions(); /** * true if this role is available to be assigned to a user diff --git a/redback-rbac/redback-rbac-providers/redback-rbac-cached/src/main/java/org/apache/archiva/redback/rbac/cached/CachedRbacManager.java b/redback-rbac/redback-rbac-providers/redback-rbac-cached/src/main/java/org/apache/archiva/redback/rbac/cached/CachedRbacManager.java index 61c62ee..cbcb9b8 100644 --- a/redback-rbac/redback-rbac-providers/redback-rbac-cached/src/main/java/org/apache/archiva/redback/rbac/cached/CachedRbacManager.java +++ b/redback-rbac/redback-rbac-providers/redback-rbac-cached/src/main/java/org/apache/archiva/redback/rbac/cached/CachedRbacManager.java @@ -79,17 +79,19 @@ public class CachedRbacManager @Inject @Named( value = "cache#userPermissions" ) - private Cache<String, Map<String, List<Permission>>> userPermissionsCache; + private Cache<String, Map<String, List<? extends Permission>>> userPermissionsCache; @Inject @Named( value = "cache#effectiveRoleSet" ) - private Cache<String, Set<Role>> effectiveRoleSetCache; + private Cache<String, Set<? extends Role>> effectiveRoleSetCache; + @Override public void initialize() { // no op } + @Override public void addChildRole( Role role, Role childRole ) throws RbacObjectInvalidException, RbacManagerException { @@ -104,11 +106,13 @@ public class CachedRbacManager } } + @Override public void addListener( RBACManagerListener listener ) { this.rbacImpl.addListener( listener ); } + @Override public Operation createOperation( String name ) throws RbacManagerException { @@ -116,6 +120,7 @@ public class CachedRbacManager return this.rbacImpl.createOperation( name ); } + @Override public Permission createPermission( String name ) throws RbacManagerException { @@ -123,6 +128,7 @@ public class CachedRbacManager return this.rbacImpl.createPermission( name ); } + @Override public Permission createPermission( String name, String operationName, String resourceIdentifier ) throws RbacManagerException { @@ -130,6 +136,7 @@ public class CachedRbacManager return this.rbacImpl.createPermission( name, operationName, resourceIdentifier ); } + @Override public Resource createResource( String identifier ) throws RbacManagerException { @@ -137,12 +144,14 @@ public class CachedRbacManager return this.rbacImpl.createResource( identifier ); } + @Override public Role createRole( String name ) { rolesCache.remove( name ); return this.rbacImpl.createRole( name ); } + @Override public UserAssignment createUserAssignment( String principal ) throws RbacManagerException { @@ -150,6 +159,7 @@ public class CachedRbacManager return this.rbacImpl.createUserAssignment( principal ); } + @Override public void eraseDatabase() { try @@ -166,42 +176,48 @@ public class CachedRbacManager /** * @see org.apache.archiva.redback.rbac.RBACManager#getAllAssignableRoles() */ - public List<Role> getAllAssignableRoles() + @Override + public List<? extends Role> getAllAssignableRoles() throws RbacManagerException, RbacObjectNotFoundException { log.debug( "NOT CACHED - .getAllAssignableRoles()" ); return this.rbacImpl.getAllAssignableRoles(); } - public List<Operation> getAllOperations() + @Override + public List<? extends Operation> getAllOperations() throws RbacManagerException { log.debug( "NOT CACHED - .getAllOperations()" ); return this.rbacImpl.getAllOperations(); } - public List<Permission> getAllPermissions() + @Override + public List<? extends Permission> getAllPermissions() throws RbacManagerException { log.debug( "NOT CACHED - .getAllPermissions()" ); return this.rbacImpl.getAllPermissions(); } - public List<Resource> getAllResources() + @Override + public List<? extends Resource> getAllResources() throws RbacManagerException { log.debug( "NOT CACHED - .getAllResources()" ); return this.rbacImpl.getAllResources(); } - public List<Role> getAllRoles() + @Override + public List<? extends Role> getAllRoles() throws RbacManagerException { log.debug( "NOT CACHED - .getAllRoles()" ); return this.rbacImpl.getAllRoles(); } - public List<UserAssignment> getAllUserAssignments() + @Override + public List<? extends UserAssignment> getAllUserAssignments() throws RbacManagerException { log.debug( "NOT CACHED - .getAllUserAssignments()" ); @@ -211,11 +227,12 @@ public class CachedRbacManager /** * @see org.apache.archiva.redback.rbac.RBACManager#getAssignedPermissionMap(java.lang.String) */ + @Override @SuppressWarnings( "unchecked" ) - public Map<String, List<Permission>> getAssignedPermissionMap( String principal ) + public Map<String, List<? extends Permission>> getAssignedPermissionMap( String principal ) throws RbacObjectNotFoundException, RbacManagerException { - Map<String, List<Permission>> el = userPermissionsCache.get( principal ); + Map<String, List<? extends Permission>> el = userPermissionsCache.get( principal ); if ( el != null ) { @@ -224,66 +241,74 @@ public class CachedRbacManager } log.debug( "building user permission map" ); - Map<String, List<Permission>> userPermMap = this.rbacImpl.getAssignedPermissionMap( principal ); + Map<String, List<? extends Permission>> userPermMap = this.rbacImpl.getAssignedPermissionMap( principal ); userPermissionsCache.put( principal, userPermMap ); return userPermMap; } - public Set<Permission> getAssignedPermissions( String principal ) + @Override + public Set<? extends Permission> getAssignedPermissions( String principal ) throws RbacObjectNotFoundException, RbacManagerException { log.debug( "NOT CACHED - .getAssignedPermissions(String)" ); return this.rbacImpl.getAssignedPermissions( principal ); } - public Collection<Role> getAssignedRoles( String principal ) + @Override + public Collection<? extends Role> getAssignedRoles( String principal ) throws RbacObjectNotFoundException, RbacManagerException { log.debug( "NOT CACHED - .getAssignedRoles(String)" ); return this.rbacImpl.getAssignedRoles( principal ); } - public Collection<Role> getAssignedRoles( UserAssignment userAssignment ) + @Override + public Collection<? extends Role> getAssignedRoles( UserAssignment userAssignment ) throws RbacObjectNotFoundException, RbacManagerException { log.debug( "NOT CACHED - .getAssignedRoles(UserAssignment)" ); return this.rbacImpl.getAssignedRoles( userAssignment ); } - public Map<String, Role> getChildRoles( Role role ) + @Override + public Map<String, ? extends Role> getChildRoles( Role role ) throws RbacManagerException { log.debug( "NOT CACHED - .getChildRoles(Role)" ); return this.rbacImpl.getChildRoles( role ); } - public Map<String, Role> getParentRoles( Role role ) + @Override + public Map<String, ? extends Role> getParentRoles( Role role ) throws RbacManagerException { log.debug( "NOT CACHED - .getParentRoles(Role)" ); return this.rbacImpl.getParentRoles( role ); } - public Collection<Role> getEffectivelyAssignedRoles( String principal ) + @Override + public Collection<? extends Role> getEffectivelyAssignedRoles( String principal ) throws RbacObjectNotFoundException, RbacManagerException { log.debug( "NOT CACHED - .getEffectivelyAssignedRoles(String)" ); return this.rbacImpl.getEffectivelyAssignedRoles( principal ); } - public Collection<Role> getEffectivelyUnassignedRoles( String principal ) + @Override + public Collection<? extends Role> getEffectivelyUnassignedRoles( String principal ) throws RbacManagerException, RbacObjectNotFoundException { log.debug( "NOT CACHED - .getEffectivelyUnassignedRoles(String)" ); return this.rbacImpl.getEffectivelyUnassignedRoles( principal ); } + @Override @SuppressWarnings( "unchecked" ) - public Set<Role> getEffectiveRoles( Role role ) + public Set<? extends Role> getEffectiveRoles( Role role ) throws RbacObjectNotFoundException, RbacManagerException { - Set<Role> el = effectiveRoleSetCache.get( role.getName() ); + Set<? extends Role> el = effectiveRoleSetCache.get( role.getName() ); if ( el != null ) { @@ -293,12 +318,13 @@ public class CachedRbacManager else { log.debug( "building effective role set" ); - Set<Role> effectiveRoleSet = this.rbacImpl.getEffectiveRoles( role ); + Set<? extends Role> effectiveRoleSet = this.rbacImpl.getEffectiveRoles( role ); effectiveRoleSetCache.put( role.getName(), effectiveRoleSet ); return effectiveRoleSet; } } + @Override public Resource getGlobalResource() throws RbacManagerException { @@ -307,6 +333,7 @@ public class CachedRbacManager return this.rbacImpl.getGlobalResource(); } + @Override public Operation getOperation( String operationName ) throws RbacObjectNotFoundException, RbacManagerException { @@ -323,6 +350,7 @@ public class CachedRbacManager } } + @Override public Permission getPermission( String permissionName ) throws RbacObjectNotFoundException, RbacManagerException { @@ -339,6 +367,7 @@ public class CachedRbacManager } } + @Override public Resource getResource( String resourceIdentifier ) throws RbacObjectNotFoundException, RbacManagerException { @@ -355,6 +384,7 @@ public class CachedRbacManager } } + @Override public Role getRole( String roleName ) throws RbacObjectNotFoundException, RbacManagerException { @@ -371,20 +401,23 @@ public class CachedRbacManager } } - public Map<String, Role> getRoles( Collection<String> roleNames ) + @Override + public Map<String, ? extends Role> getRoles( Collection<String> roleNames ) throws RbacObjectNotFoundException, RbacManagerException { log.debug( "NOT CACHED - .getRoles(Collection)" ); return this.rbacImpl.getRoles( roleNames ); } - public Collection<Role> getUnassignedRoles( String principal ) + @Override + public Collection<? extends Role> getUnassignedRoles( String principal ) throws RbacManagerException, RbacObjectNotFoundException { log.debug( "NOT CACHED - .getUnassignedRoles(String)" ); return this.rbacImpl.getUnassignedRoles( principal ); } + @Override public UserAssignment getUserAssignment( String principal ) throws RbacObjectNotFoundException, RbacManagerException { @@ -401,13 +434,15 @@ public class CachedRbacManager } } - public List<UserAssignment> getUserAssignmentsForRoles( Collection<String> roleNames ) + @Override + public List<? extends UserAssignment> getUserAssignmentsForRoles( Collection<String> roleNames ) throws RbacManagerException { log.debug( "NOT CACHED - .getUserAssignmentsForRoles(Collection)" ); return this.rbacImpl.getUserAssignmentsForRoles( roleNames ); } + @Override public boolean operationExists( Operation operation ) { if ( operation == null ) @@ -423,6 +458,7 @@ public class CachedRbacManager return this.rbacImpl.operationExists( operation ); } + @Override public boolean operationExists( String name ) { if ( operationsCache.hasKey( name ) ) @@ -433,6 +469,7 @@ public class CachedRbacManager return this.rbacImpl.operationExists( name ); } + @Override public boolean permissionExists( Permission permission ) { if ( permission == null ) @@ -448,6 +485,7 @@ public class CachedRbacManager return this.rbacImpl.permissionExists( permission ); } + @Override public boolean permissionExists( String name ) { if ( permissionsCache.hasKey( name ) ) @@ -458,6 +496,7 @@ public class CachedRbacManager return this.rbacImpl.permissionExists( name ); } + @Override public void rbacInit( boolean freshdb ) { if ( rbacImpl instanceof RBACManagerListener ) @@ -473,6 +512,7 @@ public class CachedRbacManager this.userPermissionsCache.clear(); } + @Override public void rbacPermissionRemoved( Permission permission ) { if ( rbacImpl instanceof RBACManagerListener ) @@ -483,6 +523,7 @@ public class CachedRbacManager invalidateCachedPermission( permission ); } + @Override public void rbacPermissionSaved( Permission permission ) { if ( rbacImpl instanceof RBACManagerListener ) @@ -493,6 +534,7 @@ public class CachedRbacManager invalidateCachedPermission( permission ); } + @Override public void rbacRoleRemoved( Role role ) { if ( rbacImpl instanceof RBACManagerListener ) @@ -503,6 +545,7 @@ public class CachedRbacManager invalidateCachedRole( role ); } + @Override public void rbacRoleSaved( Role role ) { if ( rbacImpl instanceof RBACManagerListener ) @@ -513,6 +556,7 @@ public class CachedRbacManager invalidateCachedRole( role ); } + @Override public void rbacUserAssignmentRemoved( UserAssignment userAssignment ) { if ( rbacImpl instanceof RBACManagerListener ) @@ -523,6 +567,7 @@ public class CachedRbacManager invalidateCachedUserAssignment( userAssignment ); } + @Override public void rbacUserAssignmentSaved( UserAssignment userAssignment ) { if ( rbacImpl instanceof RBACManagerListener ) @@ -533,11 +578,13 @@ public class CachedRbacManager invalidateCachedUserAssignment( userAssignment ); } + @Override public void removeListener( RBACManagerListener listener ) { this.rbacImpl.removeListener( listener ); } + @Override public void removeOperation( Operation operation ) throws RbacObjectNotFoundException, RbacObjectInvalidException, RbacManagerException { @@ -545,6 +592,7 @@ public class CachedRbacManager this.rbacImpl.removeOperation( operation ); } + @Override public void removeOperation( String operationName ) throws RbacObjectNotFoundException, RbacObjectInvalidException, RbacManagerException { @@ -552,6 +600,7 @@ public class CachedRbacManager this.rbacImpl.removeOperation( operationName ); } + @Override public void removePermission( Permission permission ) throws RbacObjectNotFoundException, RbacObjectInvalidException, RbacManagerException { @@ -559,6 +608,7 @@ public class CachedRbacManager this.rbacImpl.removePermission( permission ); } + @Override public void removePermission( String permissionName ) throws RbacObjectNotFoundException, RbacObjectInvalidException, RbacManagerException { @@ -566,6 +616,7 @@ public class CachedRbacManager this.rbacImpl.removePermission( permissionName ); } + @Override public void removeResource( Resource resource ) throws RbacObjectNotFoundException, RbacObjectInvalidException, RbacManagerException { @@ -573,6 +624,7 @@ public class CachedRbacManager this.rbacImpl.removeResource( resource ); } + @Override public void removeResource( String resourceIdentifier ) throws RbacObjectNotFoundException, RbacObjectInvalidException, RbacManagerException { @@ -580,6 +632,7 @@ public class CachedRbacManager this.rbacImpl.removeResource( resourceIdentifier ); } + @Override public void removeRole( Role role ) throws RbacObjectNotFoundException, RbacObjectInvalidException, RbacManagerException { @@ -587,6 +640,7 @@ public class CachedRbacManager this.rbacImpl.removeRole( role ); } + @Override public void removeRole( String roleName ) throws RbacObjectNotFoundException, RbacObjectInvalidException, RbacManagerException { @@ -594,6 +648,7 @@ public class CachedRbacManager this.rbacImpl.removeRole( roleName ); } + @Override public void removeUserAssignment( String principal ) throws RbacObjectNotFoundException, RbacObjectInvalidException, RbacManagerException { @@ -601,6 +656,7 @@ public class CachedRbacManager this.rbacImpl.removeUserAssignment( principal ); } + @Override public void removeUserAssignment( UserAssignment userAssignment ) throws RbacObjectNotFoundException, RbacObjectInvalidException, RbacManagerException { @@ -608,6 +664,7 @@ public class CachedRbacManager this.rbacImpl.removeUserAssignment( userAssignment ); } + @Override public boolean resourceExists( Resource resource ) { if ( resourcesCache.hasKey( resource.getIdentifier() ) ) @@ -618,6 +675,7 @@ public class CachedRbacManager return this.rbacImpl.resourceExists( resource ); } + @Override public boolean resourceExists( String identifier ) { if ( resourcesCache.hasKey( identifier ) ) @@ -628,6 +686,7 @@ public class CachedRbacManager return this.rbacImpl.resourceExists( identifier ); } + @Override public boolean roleExists( Role role ) throws RbacManagerException { @@ -639,6 +698,7 @@ public class CachedRbacManager return this.rbacImpl.roleExists( role ); } + @Override public boolean roleExists( String name ) throws RbacManagerException { @@ -650,6 +710,7 @@ public class CachedRbacManager return this.rbacImpl.roleExists( name ); } + @Override public Operation saveOperation( Operation operation ) throws RbacObjectInvalidException, RbacManagerException { @@ -657,6 +718,7 @@ public class CachedRbacManager return this.rbacImpl.saveOperation( operation ); } + @Override public Permission savePermission( Permission permission ) throws RbacObjectInvalidException, RbacManagerException { @@ -664,6 +726,7 @@ public class CachedRbacManager return this.rbacImpl.savePermission( permission ); } + @Override public Resource saveResource( Resource resource ) throws RbacObjectInvalidException, RbacManagerException { @@ -671,6 +734,7 @@ public class CachedRbacManager return this.rbacImpl.saveResource( resource ); } + @Override public synchronized Role saveRole( Role role ) throws RbacObjectInvalidException, RbacManagerException { @@ -697,6 +761,7 @@ public class CachedRbacManager return this.rbacImpl.saveRole( role ); } + @Override public synchronized void saveRoles( Collection<Role> roles ) throws RbacObjectInvalidException, RbacManagerException { @@ -719,6 +784,7 @@ public class CachedRbacManager this.rbacImpl.saveRoles( roles ); } + @Override public UserAssignment saveUserAssignment( UserAssignment userAssignment ) throws RbacObjectInvalidException, RbacManagerException { @@ -726,6 +792,7 @@ public class CachedRbacManager return this.rbacImpl.saveUserAssignment( userAssignment ); } + @Override public boolean userAssignmentExists( String principal ) { if ( userAssignmentsCache.hasKey( principal ) ) @@ -736,6 +803,7 @@ public class CachedRbacManager return this.rbacImpl.userAssignmentExists( principal ); } + @Override public boolean userAssignmentExists( UserAssignment assignment ) { if ( userAssignmentsCache.hasKey( assignment.getPrincipal() ) ) @@ -803,72 +871,77 @@ public class CachedRbacManager userPermissionsCache.clear(); } - public Cache getOperationsCache() + public Cache<String, ? extends Operation> getOperationsCache() { return operationsCache; } - public void setOperationsCache( Cache operationsCache ) + @SuppressWarnings( "unchecked" ) + public void setOperationsCache( Cache<String, ? extends Operation> operationsCache ) { - this.operationsCache = operationsCache; + this.operationsCache = (Cache<String, Operation>) operationsCache; } - public Cache getPermissionsCache() + public Cache<String, ? extends Permission> getPermissionsCache() { return permissionsCache; } - public void setPermissionsCache( Cache permissionsCache ) + @SuppressWarnings( "unchecked" ) + public void setPermissionsCache( Cache<String, ? extends Permission> permissionsCache ) { - this.permissionsCache = permissionsCache; + this.permissionsCache = (Cache<String, Permission>) permissionsCache; } - public Cache getResourcesCache() + public Cache<String, ? extends Resource> getResourcesCache() { return resourcesCache; } - public void setResourcesCache( Cache resourcesCache ) + @SuppressWarnings( "unchecked" ) + public void setResourcesCache( Cache<String, ? extends Resource> resourcesCache ) { - this.resourcesCache = resourcesCache; + this.resourcesCache = (Cache<String, Resource>) resourcesCache; } - public Cache getRolesCache() + public Cache<String, ? extends Role> getRolesCache() { return rolesCache; } - public void setRolesCache( Cache rolesCache ) + @SuppressWarnings( "unchecked" ) + public void setRolesCache( Cache<String, ? extends Role> rolesCache ) { - this.rolesCache = rolesCache; + this.rolesCache = (Cache<String, Role>) rolesCache; } - public Cache getUserAssignmentsCache() + public Cache<String, ? extends UserAssignment> getUserAssignmentsCache() { return userAssignmentsCache; } - public void setUserAssignmentsCache( Cache userAssignmentsCache ) + @SuppressWarnings( "unchecked" ) + public void setUserAssignmentsCache( Cache<String, ? extends UserAssignment> userAssignmentsCache ) { - this.userAssignmentsCache = userAssignmentsCache; + this.userAssignmentsCache = (Cache<String, UserAssignment>) userAssignmentsCache; } - public Cache getUserPermissionsCache() + public Cache<String, Map<String, List<? extends Permission>>> getUserPermissionsCache() { return userPermissionsCache; } - public void setUserPermissionsCache( Cache userPermissionsCache ) + public void setUserPermissionsCache( Cache<String, Map<String, List<? extends Permission>>> userPermissionsCache ) { this.userPermissionsCache = userPermissionsCache; } - public Cache getEffectiveRoleSetCache() + public Cache<String, Set<? extends Role>> getEffectiveRoleSetCache() { return effectiveRoleSetCache; } - public void setEffectiveRoleSetCache( Cache effectiveRoleSetCache ) + public void setEffectiveRoleSetCache( Cache<String, Set<? extends Role>> effectiveRoleSetCache ) { this.effectiveRoleSetCache = effectiveRoleSetCache; } @@ -884,16 +957,19 @@ public class CachedRbacManager } + @Override public boolean isFinalImplementation() { return false; } + @Override public String getDescriptionKey() { return "archiva.redback.rbacmanager.cached"; } + @Override public boolean isReadOnly() { return false; diff --git a/redback-rbac/redback-rbac-providers/redback-rbac-jpa/src/main/java/org/apache/archiva/redback/rbac/jpa/JpaRbacManager.java b/redback-rbac/redback-rbac-providers/redback-rbac-jpa/src/main/java/org/apache/archiva/redback/rbac/jpa/JpaRbacManager.java index 02b2ce7..726c151 100644 --- a/redback-rbac/redback-rbac-providers/redback-rbac-jpa/src/main/java/org/apache/archiva/redback/rbac/jpa/JpaRbacManager.java +++ b/redback-rbac/redback-rbac-providers/redback-rbac-jpa/src/main/java/org/apache/archiva/redback/rbac/jpa/JpaRbacManager.java @@ -76,13 +76,13 @@ public class JpaRbacManager extends AbstractRBACManager { @Transactional @Override - public Map<String, List<Permission>> getAssignedPermissionMap(String principal) throws RbacManagerException { + public Map<String, List<? extends Permission>> getAssignedPermissionMap(String principal) throws RbacManagerException { return super.getAssignedPermissionMap(principal); } @Transactional @Override - public Map<String, Role> getChildRoles(Role role) throws RbacManagerException { + public Map<String, ? extends Role> getChildRoles(Role role) throws RbacManagerException { return super.getChildRoles(role); } @@ -102,7 +102,7 @@ public class JpaRbacManager extends AbstractRBACManager { } final EntityManager em = getEm(); - List<Role> merged = new ArrayList<Role>(); + List<Role> merged = new ArrayList<>( ); for (Role role : roles ) { RBACObjectAssertions.assertValid(role); merged.add(em.merge(role)); @@ -129,9 +129,9 @@ public class JpaRbacManager extends AbstractRBACManager { } @Override - public List<Role> getAllRoles() throws RbacManagerException { + public List<? extends Role> getAllRoles() throws RbacManagerException { final EntityManager em = getEm(); - Query q = em.createQuery("SELECT r FROM JpaRole r"); + TypedQuery<JpaRole> q = em.createQuery("SELECT r FROM JpaRole r", JpaRole.class); return q.getResultList(); } @@ -151,7 +151,7 @@ public class JpaRbacManager extends AbstractRBACManager { if (myRole == null) { throw new RbacObjectNotFoundException("Role not found "+role.getName()); } - myRole.setPermissions(new ArrayList<Permission>()); + myRole.setPermissions( new ArrayList<>( )); em.remove(myRole); fireRbacRoleRemoved(myRole); } @@ -210,10 +210,10 @@ public class JpaRbacManager extends AbstractRBACManager { } @Override - public List<Permission> getAllPermissions() throws RbacManagerException { + public List<? extends Permission> getAllPermissions() throws RbacManagerException { final EntityManager em = getEm(); TypedQuery<JpaPermission> q = em.createQuery("SELECT p FROM JpaPermission p",JpaPermission.class); - return (List<Permission>)(List<?>)q.getResultList(); + return q.getResultList(); } @Transactional @@ -251,8 +251,7 @@ public class JpaRbacManager extends AbstractRBACManager { throw new RbacObjectInvalidException("Operation is not JpaOperation object"); } final EntityManager em = getEm(); - Operation savedOperation = em.merge(operation); - return savedOperation; + return em.merge(operation); } @Override @@ -266,9 +265,9 @@ public class JpaRbacManager extends AbstractRBACManager { } @Override - public List<Operation> getAllOperations() throws RbacManagerException { + public List<? extends Operation> getAllOperations() throws RbacManagerException { final EntityManager em = getEm(); - Query q = em.createQuery("SELECT o FROM JpaOperation o"); + TypedQuery<JpaOperation> q = em.createQuery("SELECT o FROM JpaOperation o", JpaOperation.class); return q.getResultList(); } @@ -306,8 +305,7 @@ public class JpaRbacManager extends AbstractRBACManager { throw new RbacObjectInvalidException("Resource is not JpaResource"); } final EntityManager em = getEm(); - Resource savedResource = em.merge(resource); - return savedResource; + return em.merge(resource); } // Overriding to add the transactional attribute here @@ -330,10 +328,10 @@ public class JpaRbacManager extends AbstractRBACManager { } @Override - public List<Resource> getAllResources() throws RbacManagerException { + public List<? extends Resource> getAllResources() throws RbacManagerException { final EntityManager em = getEm(); TypedQuery<JpaResource> q = em.createQuery("SELECT r FROM JpaResource r",JpaResource.class); - return (List<Resource>)(List<?>)q.getResultList(); + return q.getResultList(); } @Transactional @@ -385,17 +383,17 @@ public class JpaRbacManager extends AbstractRBACManager { } @Override - public List<UserAssignment> getAllUserAssignments() throws RbacManagerException { + public List<? extends UserAssignment> getAllUserAssignments() throws RbacManagerException { final EntityManager em = getEm(); - Query q = em.createQuery("SELECT ua FROM JpaUserAssignment ua"); + TypedQuery<JpaUserAssignment> q = em.createQuery("SELECT ua FROM JpaUserAssignment ua", JpaUserAssignment.class); return q.getResultList(); } @Override - public List<UserAssignment> getUserAssignmentsForRoles(Collection<String> roleNames) throws RbacManagerException { + public List<? extends UserAssignment> getUserAssignmentsForRoles(Collection<String> roleNames) throws RbacManagerException { try { final EntityManager em = getEm(); - Query q = em.createQuery("SELECT ua FROM JpaUserAssignment ua WHERE ua.roleNames IN :roles"); + TypedQuery<JpaUserAssignment> q = em.createQuery("SELECT ua FROM JpaUserAssignment ua WHERE ua.roleNames IN :roles", JpaUserAssignment.class); q.setParameter("roles", roleNames); return q.getResultList(); } catch (Exception ex) { diff --git a/redback-rbac/redback-rbac-providers/redback-rbac-jpa/src/main/java/org/apache/archiva/redback/rbac/jpa/model/JpaRole.java b/redback-rbac/redback-rbac-providers/redback-rbac-jpa/src/main/java/org/apache/archiva/redback/rbac/jpa/model/JpaRole.java index 565409b..0d8966e 100644 --- a/redback-rbac/redback-rbac-providers/redback-rbac-jpa/src/main/java/org/apache/archiva/redback/rbac/jpa/model/JpaRole.java +++ b/redback-rbac/redback-rbac-providers/redback-rbac-jpa/src/main/java/org/apache/archiva/redback/rbac/jpa/model/JpaRole.java @@ -99,9 +99,8 @@ public class JpaRole extends AbstractRole implements Serializable { } @Override - public List<Permission> getPermissions() { - // Maybe better to create a new list? - return (List<Permission>)(List<?>)permissions; + public List<? extends Permission> getPermissions() { + return permissions; } @Override diff --git a/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/main/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManager.java b/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/main/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManager.java index 6ecfdf9..435b827 100644 --- a/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/main/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManager.java +++ b/redback-rbac/redback-rbac-providers/redback-rbac-ldap/src/main/java/org/apache/archiva/redback/rbac/ldap/LdapRbacManager.java @@ -115,6 +115,7 @@ public class LdapRbacManager private boolean writableLdap = false; + @Override @PostConstruct public void initialize() { @@ -122,47 +123,55 @@ public class LdapRbacManager } + @Override public void addChildRole( Role role, Role childRole ) throws RbacObjectInvalidException, RbacManagerException { this.rbacImpl.addChildRole( role, childRole ); } + @Override public void addListener( RBACManagerListener listener ) { super.addListener( listener ); this.rbacImpl.addListener( listener ); } + @Override public Operation createOperation( String name ) throws RbacManagerException { return this.rbacImpl.createOperation( name ); } + @Override public Permission createPermission( String name ) throws RbacManagerException { return this.rbacImpl.createPermission( name ); } + @Override public Permission createPermission( String name, String operationName, String resourceIdentifier ) throws RbacManagerException { return this.rbacImpl.createPermission( name, operationName, resourceIdentifier ); } + @Override public Resource createResource( String identifier ) throws RbacManagerException { return this.rbacImpl.createResource( identifier ); } + @Override public Role createRole( String name ) { return this.rbacImpl.createRole( name ); } + @Override public UserAssignment createUserAssignment( String username ) throws RbacManagerException { @@ -170,6 +179,7 @@ public class LdapRbacManager return this.rbacImpl.createUserAssignment( username ); } + @Override public void eraseDatabase() { if ( writableLdap ) @@ -204,6 +214,7 @@ public class LdapRbacManager /** * @see org.apache.archiva.redback.rbac.RBACManager#getAllAssignableRoles() */ + @Override public List<Role> getAllAssignableRoles() throws RbacManagerException { @@ -229,24 +240,28 @@ public class LdapRbacManager } } - public List<Operation> getAllOperations() + @Override + public List<? extends Operation> getAllOperations() throws RbacManagerException { return this.rbacImpl.getAllOperations(); } - public List<Permission> getAllPermissions() + @Override + public List<? extends Permission> getAllPermissions() throws RbacManagerException { return this.rbacImpl.getAllPermissions(); } - public List<Resource> getAllResources() + @Override + public List<? extends Resource> getAllResources() throws RbacManagerException { return this.rbacImpl.getAllResources(); } + @Override public List<Role> getAllRoles() throws RbacManagerException { @@ -277,6 +292,7 @@ public class LdapRbacManager } + @Override public List<UserAssignment> getAllUserAssignments() throws RbacManagerException { @@ -407,7 +423,7 @@ public class LdapRbacManager protected List<String> getRealRoles() throws RbacManagerException { - List<Role> roles = this.rbacImpl.getAllRoles(); + List<? extends Role> roles = this.rbacImpl.getAllRoles(); List<String> roleNames = new ArrayList<String>( roles.size() ); for ( Role role : roles ) { @@ -416,6 +432,7 @@ public class LdapRbacManager return roleNames; } + @Override public Collection<Role> getAssignedRoles( String username ) throws RbacManagerException { @@ -454,19 +471,22 @@ public class LdapRbacManager } } + @Override public Collection<Role> getAssignedRoles( UserAssignment userAssignment ) throws RbacManagerException { return getAssignedRoles( userAssignment.getPrincipal() ); } - public Map<String, Role> getChildRoles( Role role ) + @Override + public Map<String, ? extends Role> getChildRoles( Role role ) throws RbacManagerException { return this.rbacImpl.getChildRoles( role ); } - public Map<String, Role> getParentRoles( Role role ) + @Override + public Map<String, ? extends Role> getParentRoles( Role role ) throws RbacManagerException { return this.rbacImpl.getParentRoles( role ); @@ -488,36 +508,42 @@ public class LdapRbacManager // } - public Set<Role> getEffectiveRoles( Role role ) + @Override + public Set<? extends Role> getEffectiveRoles( Role role ) throws RbacManagerException { return this.rbacImpl.getEffectiveRoles( role ); } + @Override public Resource getGlobalResource() throws RbacManagerException { return this.rbacImpl.getGlobalResource(); } + @Override public Operation getOperation( String operationName ) throws RbacManagerException { return this.rbacImpl.getOperation( operationName ); } + @Override public Permission getPermission( String permissionName ) throws RbacManagerException { return this.rbacImpl.getPermission( permissionName ); } + @Override public Resource getResource( String resourceIdentifier ) throws RbacManagerException { return this.rbacImpl.getResource( resourceIdentifier ); } + @Override public Role getRole( String roleName ) throws RbacManagerException { @@ -555,12 +581,14 @@ public class LdapRbacManager return role; } - public Map<String, Role> getRoles( Collection<String> roleNames ) + @Override + public Map<String, ? extends Role> getRoles( Collection<String> roleNames ) throws RbacManagerException { return this.rbacImpl.getRoles( roleNames ); } + @Override public Collection<Role> getUnassignedRoles( String username ) throws RbacManagerException { @@ -604,6 +632,7 @@ public class LdapRbacManager } } + @Override public UserAssignment getUserAssignment( String username ) throws RbacManagerException { @@ -643,33 +672,39 @@ public class LdapRbacManager //return this.rbacImpl.getUserAssignment( username ); } - public List<UserAssignment> getUserAssignmentsForRoles( Collection<String> roleNames ) + @Override + public List<? extends UserAssignment> getUserAssignmentsForRoles( Collection<String> roleNames ) throws RbacManagerException { // TODO from ldap return this.rbacImpl.getUserAssignmentsForRoles( roleNames ); } + @Override public boolean operationExists( Operation operation ) { return this.rbacImpl.operationExists( operation ); } + @Override public boolean operationExists( String name ) { return this.rbacImpl.operationExists( name ); } + @Override public boolean permissionExists( Permission permission ) { return this.rbacImpl.permissionExists( permission ); } + @Override public boolean permissionExists( String name ) { return this.rbacImpl.permissionExists( name ); } + @Override public void rbacInit( boolean freshdb ) { if ( rbacImpl instanceof RBACManagerListener ) @@ -678,6 +713,7 @@ public class LdapRbacManager } } + @Override public void rbacPermissionRemoved( Permission permission ) { if ( rbacImpl instanceof RBACManagerListener ) @@ -687,6 +723,7 @@ public class LdapRbacManager } + @Override public void rbacPermissionSaved( Permission permission ) { if ( rbacImpl instanceof RBACManagerListener ) @@ -696,6 +733,7 @@ public class LdapRbacManager } + @Override public void rbacRoleRemoved( Role role ) { if ( rbacImpl instanceof RBACManagerListener ) @@ -705,6 +743,7 @@ public class LdapRbacManager } + @Override public void rbacRoleSaved( Role role ) { if ( rbacImpl instanceof RBACManagerListener ) @@ -714,6 +753,7 @@ public class LdapRbacManager } + @Override public void rbacUserAssignmentRemoved( UserAssignment userAssignment ) { if ( rbacImpl instanceof RBACManagerListener ) @@ -723,6 +763,7 @@ public class LdapRbacManager } + @Override public void rbacUserAssignmentSaved( UserAssignment userAssignment ) { if ( rbacImpl instanceof RBACManagerListener ) @@ -732,47 +773,55 @@ public class LdapRbacManager } + @Override public void removeListener( RBACManagerListener listener ) { this.rbacImpl.removeListener( listener ); } + @Override public void removeOperation( Operation operation ) throws RbacManagerException { this.rbacImpl.removeOperation( operation ); } + @Override public void removeOperation( String operationName ) throws RbacManagerException { this.rbacImpl.removeOperation( operationName ); } + @Override public void removePermission( Permission permission ) throws RbacManagerException { this.rbacImpl.removePermission( permission ); } + @Override public void removePermission( String permissionName ) throws RbacManagerException { this.rbacImpl.removePermission( permissionName ); } + @Override public void removeResource( Resource resource ) throws RbacManagerException { this.rbacImpl.removeResource( resource ); } + @Override public void removeResource( String resourceIdentifier ) throws RbacManagerException { this.rbacImpl.removeResource( resourceIdentifier ); } + @Override public void removeRole( Role role ) throws RbacManagerException { @@ -805,6 +854,7 @@ public class LdapRbacManager } } + @Override public void removeRole( String roleName ) throws RbacManagerException { @@ -815,6 +865,7 @@ public class LdapRbacManager removeRole( new RoleImpl( roleName ) ); } + @Override public void removeUserAssignment( String username ) throws RbacManagerException { @@ -823,6 +874,7 @@ public class LdapRbacManager this.rbacImpl.removeUserAssignment( username ); } + @Override public void removeUserAssignment( UserAssignment userAssignment ) throws RbacManagerException { @@ -834,11 +886,13 @@ public class LdapRbacManager this.rbacImpl.removeUserAssignment( userAssignment ); } + @Override public boolean resourceExists( Resource resource ) { return this.rbacImpl.resourceExists( resource ); } + @Override public boolean resourceExists( String identifier ) { return this.rbacImpl.resourceExists( identifier ); @@ -894,24 +948,28 @@ public class LdapRbacManager } } + @Override public Operation saveOperation( Operation operation ) throws RbacManagerException { return this.rbacImpl.saveOperation( operation ); } + @Override public Permission savePermission( Permission permission ) throws RbacManagerException { return this.rbacImpl.savePermission( permission ); } + @Override public Resource saveResource( Resource resource ) throws RbacManagerException { return this.rbacImpl.saveResource( resource ); } + @Override public synchronized Role saveRole( Role role ) throws RbacManagerException { @@ -950,6 +1008,7 @@ public class LdapRbacManager //return new RoleImpl( role.getName(), role.getPermissions() ); } + @Override public synchronized void saveRoles( Collection<Role> roles ) throws RbacManagerException { @@ -981,6 +1040,7 @@ public class LdapRbacManager } + @Override public UserAssignment saveUserAssignment( UserAssignment userAssignment ) throws RbacManagerException { @@ -1045,6 +1105,7 @@ public class LdapRbacManager } } + @Override public boolean userAssignmentExists( String principal ) { if ( userAssignmentsCache.hasKey( principal ) ) @@ -1084,6 +1145,7 @@ public class LdapRbacManager return false; } + @Override public boolean userAssignmentExists( UserAssignment assignment ) { if ( assignment == null ) @@ -1145,76 +1207,91 @@ public class LdapRbacManager this.permissions = permissions; } + @Override public void addPermission( Permission permission ) { this.permissions.add( permission ); } + @Override public void addChildRoleName( String name ) { this.childRoleNames.add( name ); } + @Override public List<String> getChildRoleNames() { return this.childRoleNames; } + @Override public String getDescription() { return this.description; } + @Override public String getName() { return this.name; } + @Override public List<Permission> getPermissions() { return this.permissions; } + @Override public boolean isAssignable() { return true; } + @Override public void removePermission( Permission permission ) { this.permissions.remove( permission ); } + @Override public void setAssignable( boolean assignable ) { // no op } + @Override public void setChildRoleNames( List<String> names ) { this.childRoleNames = names; } + @Override public void setDescription( String description ) { this.description = description; } + @Override public void setName( String name ) { this.name = name; } + @Override public void setPermissions( List<Permission> permissions ) { this.permissions = permissions; } + @Override public boolean isPermanent() { return true; } + @Override public void setPermanent( boolean permanent ) { // no op @@ -1282,16 +1359,19 @@ public class LdapRbacManager } } + @Override public String getPrincipal() { return this.username; } + @Override public List<String> getRoleNames() { return this.roleNames; } + @Override public void addRoleName( Role role ) { if ( role == null ) @@ -1301,6 +1381,7 @@ public class LdapRbacManager this.roleNames.add( role.getName() ); } + @Override public void addRoleName( String roleName ) { if ( roleName == null ) @@ -1310,6 +1391,7 @@ public class LdapRbacManager this.roleNames.add( roleName ); } + @Override public void removeRoleName( Role role ) { if ( role == null ) @@ -1319,6 +1401,7 @@ public class LdapRbacManager this.roleNames.remove( role.getName() ); } + @Override public void removeRoleName( String roleName ) { if ( roleName == null ) @@ -1328,21 +1411,25 @@ public class LdapRbacManager this.roleNames.remove( roleName ); } + @Override public void setPrincipal( String principal ) { this.username = principal; } + @Override public void setRoleNames( List<String> roles ) { this.roleNames = roles; } + @Override public boolean isPermanent() { return this.permanent; } + @Override public void setPermanent( boolean permanent ) { this.permanent = permanent; @@ -1368,11 +1455,13 @@ public class LdapRbacManager return true; } + @Override public String getDescriptionKey() { return "archiva.redback.rbacmanager.ldap"; } + @Override public boolean isReadOnly() { return !writableLdap; diff --git a/redback-rbac/redback-rbac-role-manager/src/main/java/org/apache/archiva/redback/role/processor/DefaultRoleModelProcessor.java b/redback-rbac/redback-rbac-role-manager/src/main/java/org/apache/archiva/redback/role/processor/DefaultRoleModelProcessor.java index 6a6a0a0..9275a9c 100644 --- a/redback-rbac/redback-rbac-role-manager/src/main/java/org/apache/archiva/redback/role/processor/DefaultRoleModelProcessor.java +++ b/redback-rbac/redback-rbac-role-manager/src/main/java/org/apache/archiva/redback/role/processor/DefaultRoleModelProcessor.java @@ -167,7 +167,7 @@ public class DefaultRoleModelProcessor throw new RoleManagerException( "cycle detected: this should have been caught in validation", e ); } - List<Role> allRoles; + List<? extends Role> allRoles; try { allRoles = rbacManager.getAllRoles(); @@ -187,7 +187,7 @@ public class DefaultRoleModelProcessor { ModelRole roleProfile = RoleModelUtils.getModelRole( model, roleId ); - List<Permission> permissions = processPermissions( roleProfile.getPermissions() ); + List<? extends Permission> permissions = processPermissions( roleProfile.getPermissions() ); boolean roleExists = allRoleNames.contains( roleProfile.getName() );// false; @@ -292,7 +292,7 @@ public class DefaultRoleModelProcessor log.info( "time to process roles model: {} ms", stopWatch.getTime() ); } - private List<Permission> processPermissions( List<ModelPermission> permissions ) + private List<? extends Permission> processPermissions( List<ModelPermission> permissions ) throws RoleManagerException { List<Permission> rbacPermissions = new ArrayList<Permission>( permissions.size() ); diff --git a/redback-rbac/redback-rbac-role-manager/src/test/java/org/apache/archiva/redback/role/AbstractRoleManagerTest.java b/redback-rbac/redback-rbac-role-manager/src/test/java/org/apache/archiva/redback/role/AbstractRoleManagerTest.java index eb3ce1e..2b31d9f 100644 --- a/redback-rbac/redback-rbac-role-manager/src/test/java/org/apache/archiva/redback/role/AbstractRoleManagerTest.java +++ b/redback-rbac/redback-rbac-role-manager/src/test/java/org/apache/archiva/redback/role/AbstractRoleManagerTest.java @@ -65,7 +65,7 @@ public abstract class AbstractRoleManagerTest throws Exception { - List<Resource> all = rbacManager.getAllResources(); + List<? extends Resource> all = rbacManager.getAllResources(); assertTrue( rbacManager.resourceExists( "*" ) ); diff --git a/redback-rbac/redback-rbac-tests/src/main/java/org/apache/archiva/redback/tests/AbstractRbacManagerTestCase.java b/redback-rbac/redback-rbac-tests/src/main/java/org/apache/archiva/redback/tests/AbstractRbacManagerTestCase.java index 65af694..5ec4cc5 100644 --- a/redback-rbac/redback-rbac-tests/src/main/java/org/apache/archiva/redback/tests/AbstractRbacManagerTestCase.java +++ b/redback-rbac/redback-rbac-tests/src/main/java/org/apache/archiva/redback/tests/AbstractRbacManagerTestCase.java @@ -467,7 +467,7 @@ public abstract class AbstractRbacManagerTestCase assertEquals( 1, manager.getAllUserAssignments().size() ); - Set<Permission> assignedPermissions = manager.getAssignedPermissions( adminPrincipal ); + Set<? extends Permission> assignedPermissions = manager.getAssignedPermissions( adminPrincipal ); assertThat( assignedPermissions ).isNotNull().isNotEmpty().hasSize( 1 ); @@ -689,7 +689,7 @@ public abstract class AbstractRbacManagerTestCase afterSetup(); // Get the List of Assigned Roles for user bob. - Collection<Role> assignedRoles = manager.getAssignedRoles( username ); + Collection<? extends Role> assignedRoles = manager.getAssignedRoles( username ); assertThat( assignedRoles ).isNotNull().isNotEmpty().hasSize( 3 ); } @@ -733,7 +733,7 @@ public abstract class AbstractRbacManagerTestCase assertThat( manager.getAllPermissions() ).isNotNull().isNotEmpty().hasSize( 3 ); // Get the List of Assigned Roles for user bob. - Collection<Permission> assignedPermissions = manager.getAssignedPermissions( username ); + Collection<? extends Permission> assignedPermissions = manager.getAssignedPermissions( username ); assertThat( assignedPermissions ).isNotNull().isNotEmpty().hasSize( 1 ); } @@ -852,16 +852,16 @@ public abstract class AbstractRbacManagerTestCase rbacManager.saveUserAssignment( assignment ); assertEquals( incAssignements( 1 ), rbacManager.getAllUserAssignments().size() ); - List<Permission> permissions = rbacManager.getAllPermissions(); + List<? extends Permission> permissions = rbacManager.getAllPermissions(); Assertions.assertThat( permissions ).isNotNull().isNotEmpty().hasSize( 6 ); - List<Role> roles = rbacManager.getAllRoles(); + List<? extends Role> roles = rbacManager.getAllRoles(); Assertions.assertThat( roles ).isNotNull().isNotEmpty().hasSize( 4 ); afterSetup(); // Get the List of Assigned Roles for user bob. - Collection<Permission> assignedPermissions = rbacManager.getAssignedPermissions( username ); + Collection<? extends Permission> assignedPermissions = rbacManager.getAssignedPermissions( username ); assertNotNull( assignedPermissions ); assertEquals( 6, assignedPermissions.size() ); -- To stop receiving notification emails like this one, please contact marti...@apache.org.