From d87ea9270e850e8fa006cbf19ff36c96bf4bada9 Mon Sep 17 00:00:00 2001 From: Ilia Vassilev Date: Thu, 16 Jun 2022 15:15:05 -0400 Subject: [PATCH] [ELY-2349] Clean up ElytronXmlParser code. --- .../auth/client/ElytronXmlParser.java | 192 +++++++++++------- 1 file changed, 113 insertions(+), 79 deletions(-) diff --git a/auth/client/src/main/java/org/wildfly/security/auth/client/ElytronXmlParser.java b/auth/client/src/main/java/org/wildfly/security/auth/client/ElytronXmlParser.java index 2268b276428..090063ebb87 100644 --- a/auth/client/src/main/java/org/wildfly/security/auth/client/ElytronXmlParser.java +++ b/auth/client/src/main/java/org/wildfly/security/auth/client/ElytronXmlParser.java @@ -2520,10 +2520,12 @@ static String parseNameType(ConfigurationXMLStreamReader reader, boolean optiona String name = null; for (int i = 0; i < attributeCount; i ++) { checkAttributeNamespace(reader, i); - if (reader.getAttributeLocalName(i).equals("name")) { - name = reader.getAttributeValueResolved(i); - } else { - throw reader.unexpectedAttribute(i); + switch (reader.getAttributeLocalName(i)) { + case "name": { + name = reader.getAttributeValueResolved(i); + break; + } + default: throw reader.unexpectedAttribute(i); } } if (name == null && !optional) { @@ -2556,12 +2558,18 @@ static ExceptionSupplier parseResourceType(Configurati String module = null; for (int i = 0; i < attributeCount; i ++) { checkAttributeNamespace(reader, i); - if (reader.getAttributeLocalName(i).equals("name")) { - name = reader.getAttributeValueResolved(i); - } else if (reader.getAttributeLocalName(i).equals("module-name") && xmlVersion.isAtLeast(Version.VERSION_1_1)) { - module = reader.getAttributeValueResolved(i); - } else { - throw reader.unexpectedAttribute(i); + switch (reader.getAttributeLocalName(i)) { + case "name": { + name = reader.getAttributeValueResolved(i); + break; + } + case "module-name": { + if (xmlVersion.isAtLeast(Version.VERSION_1_1)) { + module = reader.getAttributeValueResolved(i); + break; + } + } + default: throw reader.unexpectedAttribute(i); } } if (name == null) { @@ -2599,18 +2607,20 @@ static int parsePortType(ConfigurationXMLStreamReader reader) throws ConfigXMLPa int number = -1; for (int i = 0; i < attributeCount; i ++) { checkAttributeNamespace(reader, i); - if (reader.getAttributeLocalName(i).equals("number")) { - String s = reader.getAttributeValueResolved(i); - try { - number = Integer.parseInt(s); - } catch (NumberFormatException ignored) { - throw invalidPortNumber(reader, i); - } - if (number < 1 || number > 65535) { - throw invalidPortNumber(reader, i); + switch (reader.getAttributeLocalName(i)) { + case "number": { + String s = reader.getAttributeValueResolved(i); + try { + number = Integer.parseInt(s); + } catch (NumberFormatException ignored) { + throw invalidPortNumber(reader, i); + } + if (number < 1 || number > 65535) { + throw invalidPortNumber(reader, i); + } + break; } - } else { - throw reader.unexpectedAttribute(i); + default: throw reader.unexpectedAttribute(i); } } if (number == -1) { @@ -2642,12 +2652,16 @@ static NameRewriter parseRegexSubstitutionType(ConfigurationXMLStreamReader read String replacement = null; for (int i = 0; i < attributeCount; i ++) { checkAttributeNamespace(reader, i); - if (reader.getAttributeLocalName(i).equals("pattern")) { - pattern = Pattern.compile(reader.getAttributeValueResolved(i)); - } else if (reader.getAttributeLocalName(i).equals("replacement")) { - replacement = reader.getAttributeValueResolved(i); - } else { - throw reader.unexpectedAttribute(i); + switch (reader.getAttributeLocalName(i)) { + case "pattern": { + pattern = Pattern.compile(reader.getAttributeValueResolved(i)); + break; + } + case "replacement": { + replacement = reader.getAttributeValueResolved(i); + break; + } + default: throw reader.unexpectedAttribute(i); } } if (pattern == null) { @@ -2681,11 +2695,13 @@ static String[] parseNamesType(ConfigurationXMLStreamReader reader) throws Confi String[] names = null; for (int i = 0; i < attributeCount; i ++) { checkAttributeNamespace(reader, i); - if (reader.getAttributeLocalName(i).equals("names")) { - String s = reader.getAttributeValueResolved(i); - names = s.trim().split("\\s+"); - } else { - throw reader.unexpectedAttribute(i); + switch (reader.getAttributeLocalName(i)) { + case "names": { + String s = reader.getAttributeValueResolved(i); + names = s.trim().split("\\s+"); + break; + } + default: throw reader.unexpectedAttribute(i); } } if (names == null) { @@ -2716,10 +2732,12 @@ static URI parseUriType(ConfigurationXMLStreamReader reader) throws ConfigXMLPar URI uri = null; for (int i = 0; i < attributeCount; i ++) { checkAttributeNamespace(reader, i); - if (reader.getAttributeLocalName(i).equals("uri")) { - uri = reader.getURIAttributeValueResolved(i); - } else { - throw reader.unexpectedAttribute(i); + switch (reader.getAttributeLocalName(i)) { + case "uri": { + uri = reader.getURIAttributeValueResolved(i); + break; + } + default: throw reader.unexpectedAttribute(i); } } if (uri == null) { @@ -2743,10 +2761,12 @@ static SaslMechanismSelector parseSaslMechanismSelectorType(ConfigurationXMLStre SaslMechanismSelector selector = null; for (int i = 0; i < attributeCount; i ++) { checkAttributeNamespace(reader, i); - if (reader.getAttributeLocalName(i).equals("selector")) { - selector = SaslMechanismSelector.fromString(reader.getAttributeValueResolved(i)); - } else { - throw reader.unexpectedAttribute(i); + switch (reader.getAttributeLocalName(i)) { + case "selector": { + selector = SaslMechanismSelector.fromString(reader.getAttributeValueResolved(i)); + break; + } + default: throw reader.unexpectedAttribute(i); } } if (selector == null) { @@ -2778,12 +2798,18 @@ static CipherSuiteSelector parseCipherSuiteSelectorType(ConfigurationXMLStreamRe CipherSuiteSelector names = null; for (int i = 0; i < attributeCount; i ++) { checkAttributeNamespace(reader, i); - if (reader.getAttributeLocalName(i).equals("selector")) { - selector = CipherSuiteSelector.fromString(reader.getAttributeValueResolved(i)); - } else if (xmlVersion.isAtLeast(Version.VERSION_1_5) && reader.getAttributeLocalName(i).equals("names")) { - names = CipherSuiteSelector.fromNamesString(reader.getAttributeValueResolved(i)); - } else { - throw reader.unexpectedAttribute(i); + switch (reader.getAttributeLocalName(i)) { + case "selector": { + selector = CipherSuiteSelector.fromString(reader.getAttributeValueResolved(i)); + break; + } + case "names": { + if (xmlVersion.isAtLeast(Version.VERSION_1_5)) { + names = CipherSuiteSelector.fromNamesString(reader.getAttributeValueResolved(i)); + break; + } + } + default: throw reader.unexpectedAttribute(i); } } if (selector == null && ! xmlVersion.isAtLeast(Version.VERSION_1_5)) { @@ -2838,10 +2864,12 @@ static String parseModuleRefType(ConfigurationXMLStreamReader reader) throws Con String moduleName = null; for (int i = 0; i < attributeCount; i ++) { checkAttributeNamespace(reader, i); - if (reader.getAttributeLocalName(i).equals("module-name")) { - moduleName = reader.getAttributeValueResolved(i); - } else { - throw reader.unexpectedAttribute(i); + switch (reader.getAttributeLocalName(i)) { + case "module-name": { + moduleName = reader.getAttributeValueResolved(i); + break; + } + default: throw reader.unexpectedAttribute(i); } } @@ -2871,10 +2899,12 @@ static ExceptionSupplier parseClearPassword(C char[] password = null; for (int i = 0; i < attributeCount; i ++) { checkAttributeNamespace(reader, i); - if (reader.getAttributeLocalName(i).equals("password")) { - password = reader.getAttributeValueResolved(i).toCharArray(); - } else { - throw reader.unexpectedAttribute(i); + switch (reader.getAttributeLocalName(i)) { + case "password": { + password = reader.getAttributeValueResolved(i).toCharArray(); + break; + } + default: throw reader.unexpectedAttribute(i); } } if (password == null) { @@ -3297,13 +3327,13 @@ static ExceptionSupplier mechanismOids = new LinkedList<>(); for (int i = 0; i < attributeCount; i ++) { checkAttributeNamespace(reader, i); - if (reader.getAttributeLocalName(i).equals("mechanism-names")) { - for (String name : reader.getListAttributeValueAsArrayResolved(i)) { - String oid = OidsUtil.attributeNameToOid(OidsUtil.Category.GSS, name); - if (oid == null) { - throw xmlLog.xmlInvalidGssMechanismName(reader, name); - } - try { - mechanismOids.add(new Oid(oid)); - } catch (GSSException e) { - throw xmlLog.xmlGssMechanismOidConversionFailed(reader, oid, e); + switch (reader.getAttributeLocalName(i)) { + case "mechanism-names": { + for (String name : reader.getListAttributeValueAsArrayResolved(i)) { + String oid = OidsUtil.attributeNameToOid(OidsUtil.Category.GSS, name); + if (oid == null) { + throw xmlLog.xmlInvalidGssMechanismName(reader, name); + } + try { + mechanismOids.add(new Oid(oid)); + } catch (GSSException e) { + throw xmlLog.xmlGssMechanismOidConversionFailed(reader, oid, e); + } } + break; } - } else if (reader.getAttributeLocalName(i).equals("mechanism-oids")) { - for (String oid : reader.getListAttributeValueAsArrayResolved(i)) { - try { - mechanismOids.add(new Oid(oid)); - } catch (GSSException e) { - throw xmlLog.xmlGssMechanismOidConversionFailed(reader, oid, e); + case "mechanism-oids": { + for (String oid : reader.getListAttributeValueAsArrayResolved(i)) { + try { + mechanismOids.add(new Oid(oid)); + } catch (GSSException e) { + throw xmlLog.xmlGssMechanismOidConversionFailed(reader, oid, e); + } } + break; } - } else { - throw reader.unexpectedAttribute(i); + default: throw reader.unexpectedAttribute(i); } } if (mechanismOids.size() == 0) {