@Override
 public Set<Role> listRoles(String sourceId) throws NoSuchAuthorizationManagerException {
   if (ALL_ROLES_KEY.equalsIgnoreCase(sourceId)) {
     return listRoles();
   } else {
     AuthorizationManager authzManager = getAuthorizationManager(sourceId);
     return authzManager.listRoles();
   }
 }
  @Override
  public Set<Role> listRoles() {
    Set<Role> result = new HashSet<>();
    for (AuthorizationManager authzManager : authorizationManagers.values()) {
      Set<Role> roles = authzManager.listRoles();
      if (roles != null) {
        result.addAll(roles);
      }
    }

    return result;
  }