use of org.apache.archiva.redback.rbac.Resource in project archiva by apache.
the class ArchivaRbacManager method getAllResources.
@Override
public List<Resource> getAllResources() throws RbacManagerException {
Map<String, Resource> allResources = new HashMap<>();
boolean allFailed = true;
Exception lastException = null;
for (RBACManager rbacManager : rbacManagersPerId.values()) {
try {
List<Resource> resources = rbacManager.getAllResources();
for (Resource r : resources) {
allResources.put(r.getIdentifier(), r);
}
allFailed = false;
} catch (Exception e) {
lastException = e;
}
}
if (lastException != null && allFailed) {
throw new RbacManagerException(lastException.getMessage(), lastException);
}
return new ArrayList<>(allResources.values());
}
use of org.apache.archiva.redback.rbac.Resource in project archiva by apache.
the class ArchivaRbacManager method getResource.
@Override
public Resource getResource(String resourceIdentifier) throws RbacObjectNotFoundException, RbacManagerException {
Resource el = resourcesCache.get(resourceIdentifier);
if (el != null) {
return el;
}
Exception lastException = null;
for (RBACManager rbacManager : rbacManagersPerId.values()) {
try {
Resource r = rbacManager.getResource(resourceIdentifier);
if (r != null) {
resourcesCache.put(resourceIdentifier, r);
return r;
}
} catch (Exception e) {
lastException = e;
}
}
if (lastException != null) {
throw new RbacManagerException(lastException.getMessage(), lastException);
}
return null;
}
Aggregations