Extracted class file by inner class
This commit is contained in:
parent
0ab8ff5563
commit
0179e650b6
|
@ -9,11 +9,8 @@ import java.util.Collections;
|
|||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TreeMap;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
|
@ -30,10 +27,6 @@ import org.keycloak.representations.idm.authorization.ResourceRepresentation;
|
|||
import org.keycloak.representations.idm.authorization.ScopeRepresentation;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.nubisware.oidc.gcube.D4ScienceMappings.Role;
|
||||
import com.nubisware.oidc.gcube.D4ScienceMappings.Scope;
|
||||
import com.nubisware.oidc.keycloak.KeycloakHelper;
|
||||
|
@ -194,81 +187,7 @@ public class ClientsCreatorFromExport {
|
|||
return exportParser;
|
||||
}
|
||||
|
||||
public class ExportParser {
|
||||
|
||||
private ArrayNode rootNode;
|
||||
|
||||
public ExportParser(FileInputStream exportFileFIS)
|
||||
throws SAXException, IOException, ParserConfigurationException {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
rootNode = (ArrayNode) objectMapper.readTree(exportFileFIS);
|
||||
}
|
||||
|
||||
public Set<String> getAllUsers() {
|
||||
Set<String> users = new TreeSet<>();
|
||||
Iterator<JsonNode> arrayIterator = rootNode.elements();
|
||||
while (arrayIterator.hasNext()) {
|
||||
JsonNode entry = arrayIterator.next();
|
||||
users.add(entry.get("username").asText());
|
||||
}
|
||||
return users;
|
||||
}
|
||||
|
||||
public Set<String> getAllContexts() {
|
||||
Set<String> distinctContexts = new TreeSet<>();
|
||||
Iterator<JsonNode> arrayIterator = rootNode.elements();
|
||||
while (arrayIterator.hasNext()) {
|
||||
JsonNode entry = arrayIterator.next();
|
||||
ObjectNode contextsNode = (ObjectNode) entry.get("contexts");
|
||||
contextsNode.fieldNames().forEachRemaining(f -> distinctContexts.add(f));
|
||||
}
|
||||
return distinctContexts;
|
||||
}
|
||||
|
||||
public Map<String, Set<String>> getContextsAndRoles(String user) {
|
||||
Iterator<JsonNode> arrayIterator = rootNode.elements();
|
||||
while (arrayIterator.hasNext()) {
|
||||
JsonNode entry = arrayIterator.next();
|
||||
String username = entry.get("username").asText();
|
||||
if (!user.equals(username)) {
|
||||
continue;
|
||||
}
|
||||
Map<String, Set<String>> contextAndRoles = new TreeMap<>();
|
||||
ObjectNode contextsNode = (ObjectNode) entry.get("contexts");
|
||||
Iterator<String> contextIterator = contextsNode.fieldNames();
|
||||
while (contextIterator.hasNext()) {
|
||||
String context = (String) contextIterator.next();
|
||||
Set<String> roles = new TreeSet<>();
|
||||
ArrayNode rolesNodes = (ArrayNode) contextsNode.get(context);
|
||||
rolesNodes.elements().forEachRemaining(r -> roles.add(r.asText()));
|
||||
contextAndRoles.put(context, roles);
|
||||
}
|
||||
return contextAndRoles;
|
||||
}
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
public Map<String, Map<String, Set<String>>> getAllUserContextsAndRoles() {
|
||||
Map<String, Map<String, Set<String>>> usersToContextAndRoles = new TreeMap<>();
|
||||
Iterator<JsonNode> arrayIterator = rootNode.elements();
|
||||
while (arrayIterator.hasNext()) {
|
||||
JsonNode entry = arrayIterator.next();
|
||||
String username = entry.get("username").asText();
|
||||
Map<String, Set<String>> contextAndRoles = new TreeMap<>();
|
||||
ObjectNode contextsNode = (ObjectNode) entry.get("contexts");
|
||||
Iterator<String> contextIterator = contextsNode.fieldNames();
|
||||
while (contextIterator.hasNext()) {
|
||||
String context = (String) contextIterator.next();
|
||||
Set<String> roles = new TreeSet<>();
|
||||
ArrayNode rolesNodes = (ArrayNode) contextsNode.get(context);
|
||||
rolesNodes.elements().forEachRemaining(r -> roles.add(r.asText()));
|
||||
contextAndRoles.put(context, roles);
|
||||
}
|
||||
usersToContextAndRoles.put(username, contextAndRoles);
|
||||
}
|
||||
return usersToContextAndRoles;
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
String serverURL = null;
|
||||
|
|
|
@ -0,0 +1,94 @@
|
|||
package com.nubisware.oidc.keycloak.gcube;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TreeMap;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
|
||||
public class ExportParser {
|
||||
|
||||
private ArrayNode rootNode;
|
||||
|
||||
public ExportParser(FileInputStream exportFileFIS) throws SAXException, IOException, ParserConfigurationException {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
rootNode = (ArrayNode) objectMapper.readTree(exportFileFIS);
|
||||
}
|
||||
|
||||
public Set<String> getAllUsers() {
|
||||
Set<String> users = new TreeSet<>();
|
||||
Iterator<JsonNode> arrayIterator = rootNode.elements();
|
||||
while (arrayIterator.hasNext()) {
|
||||
JsonNode entry = arrayIterator.next();
|
||||
users.add(entry.get("username").asText());
|
||||
}
|
||||
return users;
|
||||
}
|
||||
|
||||
public Set<String> getAllContexts() {
|
||||
Set<String> distinctContexts = new TreeSet<>();
|
||||
Iterator<JsonNode> arrayIterator = rootNode.elements();
|
||||
while (arrayIterator.hasNext()) {
|
||||
JsonNode entry = arrayIterator.next();
|
||||
ObjectNode contextsNode = (ObjectNode) entry.get("contexts");
|
||||
contextsNode.fieldNames().forEachRemaining(f -> distinctContexts.add(f));
|
||||
}
|
||||
return distinctContexts;
|
||||
}
|
||||
|
||||
public Map<String, Set<String>> getContextsAndRoles(String user) {
|
||||
Iterator<JsonNode> arrayIterator = rootNode.elements();
|
||||
while (arrayIterator.hasNext()) {
|
||||
JsonNode entry = arrayIterator.next();
|
||||
String username = entry.get("username").asText();
|
||||
if (!user.equals(username)) {
|
||||
continue;
|
||||
}
|
||||
Map<String, Set<String>> contextAndRoles = new TreeMap<>();
|
||||
ObjectNode contextsNode = (ObjectNode) entry.get("contexts");
|
||||
Iterator<String> contextIterator = contextsNode.fieldNames();
|
||||
while (contextIterator.hasNext()) {
|
||||
String context = (String) contextIterator.next();
|
||||
Set<String> roles = new TreeSet<>();
|
||||
ArrayNode rolesNodes = (ArrayNode) contextsNode.get(context);
|
||||
rolesNodes.elements().forEachRemaining(r -> roles.add(r.asText()));
|
||||
contextAndRoles.put(context, roles);
|
||||
}
|
||||
return contextAndRoles;
|
||||
}
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
public Map<String, Map<String, Set<String>>> getAllUserContextsAndRoles() {
|
||||
Map<String, Map<String, Set<String>>> usersToContextAndRoles = new TreeMap<>();
|
||||
Iterator<JsonNode> arrayIterator = rootNode.elements();
|
||||
while (arrayIterator.hasNext()) {
|
||||
JsonNode entry = arrayIterator.next();
|
||||
String username = entry.get("username").asText();
|
||||
Map<String, Set<String>> contextAndRoles = new TreeMap<>();
|
||||
ObjectNode contextsNode = (ObjectNode) entry.get("contexts");
|
||||
Iterator<String> contextIterator = contextsNode.fieldNames();
|
||||
while (contextIterator.hasNext()) {
|
||||
String context = (String) contextIterator.next();
|
||||
Set<String> roles = new TreeSet<>();
|
||||
ArrayNode rolesNodes = (ArrayNode) contextsNode.get(context);
|
||||
rolesNodes.elements().forEachRemaining(r -> roles.add(r.asText()));
|
||||
contextAndRoles.put(context, roles);
|
||||
}
|
||||
usersToContextAndRoles.put(username, contextAndRoles);
|
||||
}
|
||||
return usersToContextAndRoles;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue