Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ELY-2349] Clean up ElytronXmlParser code. #1717

Merged
merged 1 commit into from
Dec 12, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -2556,12 +2558,18 @@ static ExceptionSupplier<InputStream, IOException> 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) {
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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) {
Expand All @@ -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) {
Expand Down Expand Up @@ -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)) {
Expand Down Expand Up @@ -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);
}
}

Expand Down Expand Up @@ -2871,10 +2899,12 @@ static ExceptionSupplier<Password, ConfigXMLParseException> 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) {
Expand Down Expand Up @@ -3297,13 +3327,13 @@ static ExceptionSupplier<OAuth2CredentialSource.Builder, ConfigXMLParseException
String password = null;
for (int i = 0; i < attributeCount; i ++) {
checkAttributeNamespace(reader, i);
if ("name".equals(reader.getAttributeLocalName(i))) {
if (userName != null) throw reader.unexpectedAttribute(i);
userName = reader.getAttributeValueResolved(i);
break;
}
else {
throw reader.unexpectedAttribute(i);
switch (reader.getAttributeLocalName(i)) {
case "name": {
if (userName != null) throw reader.unexpectedAttribute(i);
userName = reader.getAttributeValueResolved(i);
break;
}
default: throw reader.unexpectedAttribute(i);
}
}
if (userName == null) throw reader.missingRequiredAttribute(xmlVersion.namespace, "name");
Expand Down Expand Up @@ -3410,28 +3440,32 @@ static CredentialSource parseLocalKerberos(ConfigurationXMLStreamReader reader)
List<Oid> 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) {
Expand Down
Loading