[Minor] Added default branches to PrivilegeConfigSaxReader.startElement()

This commit is contained in:
Robert von Burg 2023-04-05 21:24:29 +02:00
parent fa7c9a8aea
commit fcb24205a6
Signed by: eitch
GPG Key ID: 75DB9C85C74331F7
1 changed files with 39 additions and 34 deletions

View File

@ -15,6 +15,8 @@
*/
package li.strolch.privilege.xml;
import static li.strolch.privilege.helper.XmlConstants.*;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.HashMap;
@ -46,9 +48,12 @@ public class PrivilegeConfigSaxReader extends DefaultHandler {
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
switch (qName) {
case XmlConstants.XML_CONTAINER -> this.buildersStack.push(new ContainerParser());
case XmlConstants.XML_PARAMETERS -> this.buildersStack.push(new ParametersParser());
case XmlConstants.XML_POLICIES -> this.buildersStack.push(new PoliciesParser());
case XML_CONTAINER -> this.buildersStack.push(new ContainerParser());
case XML_PARAMETERS -> this.buildersStack.push(new ParametersParser());
case XML_POLICIES -> this.buildersStack.push(new PoliciesParser());
default -> {
// nothing to do, probably handle on stack
}
}
if (!this.buildersStack.isEmpty())
@ -68,8 +73,7 @@ public class PrivilegeConfigSaxReader extends DefaultHandler {
this.buildersStack.peek().endElement(uri, localName, qName);
ElementParser elementParser = switch (qName) {
case XmlConstants.XML_CONTAINER, XmlConstants.XML_PARAMETERS, XmlConstants.XML_POLICIES ->
this.buildersStack.pop();
case XML_CONTAINER, XML_PARAMETERS, XML_POLICIES -> this.buildersStack.pop();
default -> null;
};
@ -85,37 +89,38 @@ public class PrivilegeConfigSaxReader extends DefaultHandler {
public void startElement(String uri, String localName, String qName, Attributes attributes) {
switch (qName) {
case XmlConstants.XML_CONTAINER -> this.currentElement = qName;
case XmlConstants.XML_HANDLER_ENCRYPTION -> {
case XML_CONTAINER -> this.currentElement = qName;
case XML_HANDLER_ENCRYPTION -> {
this.currentElement = qName;
String className = attributes.getValue(XmlConstants.XML_ATTR_CLASS).trim();
String className = attributes.getValue(XML_ATTR_CLASS).trim();
getContainerModel().setEncryptionHandlerClassName(className);
}
case XmlConstants.XML_HANDLER_PASSWORD_STRENGTH -> {
case XML_HANDLER_PASSWORD_STRENGTH -> {
this.currentElement = qName;
String className = attributes.getValue(XmlConstants.XML_ATTR_CLASS).trim();
String className = attributes.getValue(XML_ATTR_CLASS).trim();
getContainerModel().setPasswordStrengthHandlerClassName(className);
}
case XmlConstants.XML_HANDLER_PERSISTENCE -> {
case XML_HANDLER_PERSISTENCE -> {
this.currentElement = qName;
String className = attributes.getValue(XmlConstants.XML_ATTR_CLASS).trim();
String className = attributes.getValue(XML_ATTR_CLASS).trim();
getContainerModel().setPersistenceHandlerClassName(className);
}
case XmlConstants.XML_HANDLER_USER_CHALLENGE -> {
case XML_HANDLER_USER_CHALLENGE -> {
this.currentElement = qName;
String className = attributes.getValue(XmlConstants.XML_ATTR_CLASS).trim();
String className = attributes.getValue(XML_ATTR_CLASS).trim();
getContainerModel().setUserChallengeHandlerClassName(className);
}
case XmlConstants.XML_HANDLER_SSO -> {
case XML_HANDLER_SSO -> {
this.currentElement = qName;
String className = attributes.getValue(XmlConstants.XML_ATTR_CLASS).trim();
String className = attributes.getValue(XML_ATTR_CLASS).trim();
getContainerModel().setSsoHandlerClassName(className);
}
case XmlConstants.XML_HANDLER_PRIVILEGE -> {
case XML_HANDLER_PRIVILEGE -> {
this.currentElement = qName;
String className = attributes.getValue(XmlConstants.XML_ATTR_CLASS).trim();
String className = attributes.getValue(XML_ATTR_CLASS).trim();
getContainerModel().setPrivilegeHandlerClassName(className);
}
default -> throw new IllegalStateException("Unexpected value: " + qName);
}
}
@ -125,34 +130,34 @@ public class PrivilegeConfigSaxReader extends DefaultHandler {
return;
switch (this.currentElement) {
case XmlConstants.XML_CONTAINER -> getContainerModel().setParameterMap(parametersChild.getParameterMap());
case XmlConstants.XML_HANDLER_ENCRYPTION ->
case XML_CONTAINER -> getContainerModel().setParameterMap(parametersChild.getParameterMap());
case XML_HANDLER_ENCRYPTION ->
getContainerModel().setEncryptionHandlerParameterMap(parametersChild.getParameterMap());
case XmlConstants.XML_HANDLER_PASSWORD_STRENGTH ->
case XML_HANDLER_PASSWORD_STRENGTH ->
getContainerModel().setPasswordStrengthHandlerParameterMap(parametersChild.getParameterMap());
case XmlConstants.XML_HANDLER_PERSISTENCE ->
case XML_HANDLER_PERSISTENCE ->
getContainerModel().setPersistenceHandlerParameterMap(parametersChild.getParameterMap());
case XmlConstants.XML_HANDLER_USER_CHALLENGE ->
case XML_HANDLER_USER_CHALLENGE ->
getContainerModel().setUserChallengeHandlerParameterMap(parametersChild.getParameterMap());
case XmlConstants.XML_HANDLER_SSO ->
getContainerModel().setSsoHandlerParameterMap(parametersChild.getParameterMap());
case XmlConstants.XML_HANDLER_PRIVILEGE ->
case XML_HANDLER_SSO -> getContainerModel().setSsoHandlerParameterMap(parametersChild.getParameterMap());
case XML_HANDLER_PRIVILEGE ->
getContainerModel().setPrivilegeHandlerParameterMap(parametersChild.getParameterMap());
default -> throw new IllegalStateException("Unexpected value: " + this.currentElement);
}
}
}
static class ParametersParser extends ElementParserAdapter {
// <Parameter name="autoPersistOnPasswordChange" value="true" />
// <Parameter name="autoPersistOnPasswordChange" value="true" />
private final Map<String, String> parameterMap = new HashMap<>();
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) {
if (qName.equals(XmlConstants.XML_PARAMETER)) {
String key = attributes.getValue(XmlConstants.XML_ATTR_NAME).trim();
String value = attributes.getValue(XmlConstants.XML_ATTR_VALUE).trim();
if (qName.equals(XML_PARAMETER)) {
String key = attributes.getValue(XML_ATTR_NAME).trim();
String value = attributes.getValue(XML_ATTR_VALUE).trim();
this.parameterMap.put(key, value);
}
}
@ -167,13 +172,13 @@ public class PrivilegeConfigSaxReader extends DefaultHandler {
class PoliciesParser extends ElementParserAdapter {
// <Policy name="DefaultPrivilege" class="li.strolch.privilege.policy.DefaultPrivilege" />
// <Policy name="DefaultPrivilege" class="li.strolch.privilege.policy.DefaultPrivilege" />
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) {
if (qName.equals(XmlConstants.XML_POLICY)) {
String policyName = attributes.getValue(XmlConstants.XML_ATTR_NAME).trim();
String policyClassName = attributes.getValue(XmlConstants.XML_ATTR_CLASS).trim();
if (qName.equals(XML_POLICY)) {
String policyName = attributes.getValue(XML_ATTR_NAME).trim();
String policyClassName = attributes.getValue(XML_ATTR_CLASS).trim();
getContainerModel().addPolicy(policyName, policyClassName);
}