in taverna-server-webapp/src/main/java/org/apache/taverna/server/master/utils/X500Utils.java [63:97]
public String getName(X500Principal id, String... fields) {
String dn = id.getName(RFC2253);
int i = 0;
int startIndex = 0;
boolean ignoreThisChar = false;
boolean inQuotes = false;
Map<String, String> tokenized = new HashMap<>();
for (i = 0; i < dn.length(); i++)
if (ignoreThisChar)
ignoreThisChar = false;
else if (dn.charAt(i) == DN_QUOTE)
inQuotes = !inQuotes;
else if (inQuotes)
continue;
else if (dn.charAt(i) == DN_ESCAPE)
ignoreThisChar = true;
else if ((dn.charAt(i) == DN_SEPARATOR) && !ignoreThisChar) {
storeDNField(tokenized, dn.substring(startIndex, i).trim()
.split("=", 2));
startIndex = i + 1;
}
if (inQuotes || ignoreThisChar)
log.warn("was parsing invalid DN format");
// Add last token - after the last delimiter
storeDNField(tokenized, dn.substring(startIndex).trim().split("=", 2));
for (String field : fields) {
String value = tokenized.get(field);
if (value != null)
return value;
}
return "none";
}