private void readRealm(XMLExtendedStreamReader reader, List<ModelNode> list) throws XMLStreamException { String realmName = readNameAttribute(reader); ModelNode addRealm = new ModelNode(); addRealm.get(ModelDescriptionConstants.OP).set(ModelDescriptionConstants.ADD); PathAddress addr = PathAddress.pathAddress(PathElement.pathElement(ModelDescriptionConstants.SUBSYSTEM, KeycloakExtension.SUBSYSTEM_NAME), PathElement.pathElement(RealmDefinition.TAG_NAME, realmName)); addRealm.get(ModelDescriptionConstants.OP_ADDR).set(addr.toModelNode()); while (reader.hasNext() && nextTag(reader) != END_ELEMENT) { String tagName = reader.getLocalName(); SimpleAttributeDefinition def = RealmDefinition.lookup(tagName); if (def == null) throw new XMLStreamException("Unknown realm tag " + tagName); def.parseAndSetParameter(reader.getElementText(), addRealm, reader); } list.add(addRealm); }
private void readRealm(XMLExtendedStreamReader reader, List<ModelNode> list) throws XMLStreamException { String realmName = readNameAttribute(reader); ModelNode addRealm = new ModelNode(); addRealm.get(ModelDescriptionConstants.OP).set(ModelDescriptionConstants.ADD); PathAddress addr = PathAddress.pathAddress(PathElement.pathElement(ModelDescriptionConstants.SUBSYSTEM, KeycloakExtension.SUBSYSTEM_NAME), PathElement.pathElement(RealmDefinition.TAG_NAME, realmName)); addRealm.get(ModelDescriptionConstants.OP_ADDR).set(addr.toModelNode()); while (reader.hasNext() && nextTag(reader) != END_ELEMENT) { String tagName = reader.getLocalName(); SimpleAttributeDefinition def = RealmDefinition.lookup(tagName); if (def == null) throw new XMLStreamException("Unknown realm tag " + tagName); def.parseAndSetParameter(reader.getElementText(), addRealm, reader); } if (!SharedAttributeDefinitons.validateTruststoreSetIfRequired(addRealm)) { //TODO: externalize the message throw new XMLStreamException("truststore and truststore-password must be set if ssl-required is not none and disable-trust-maanger is false."); } list.add(addRealm); }
private void readSecureResource(String tagName, AbstractAdapterConfigurationDefinition resource, XMLExtendedStreamReader reader, List<ModelNode> resourcesToAdd) throws XMLStreamException { String name = readNameAttribute(reader); ModelNode addSecureDeployment = new ModelNode(); addSecureDeployment.get(ModelDescriptionConstants.OP).set(ModelDescriptionConstants.ADD); PathAddress addr = PathAddress.pathAddress(PathElement.pathElement(ModelDescriptionConstants.SUBSYSTEM, KeycloakExtension.SUBSYSTEM_NAME), PathElement.pathElement(tagName, name)); addSecureDeployment.get(ModelDescriptionConstants.OP_ADDR).set(addr.toModelNode()); List<ModelNode> credentialsToAdd = new ArrayList<ModelNode>(); List<ModelNode> redirectRulesToAdd = new ArrayList<ModelNode>(); while (reader.hasNext() && nextTag(reader) != END_ELEMENT) { String localName = reader.getLocalName(); if (localName.equals(CredentialDefinition.TAG_NAME)) { readCredential(reader, addr, credentialsToAdd); continue; } if (localName.equals(RedirecRewritetRuleDefinition.TAG_NAME)) { readRewriteRule(reader, addr, redirectRulesToAdd); continue; } SimpleAttributeDefinition def = resource.lookup(localName); if (def == null) throw new XMLStreamException("Unknown secure-deployment tag " + localName); def.parseAndSetParameter(reader.getElementText(), addSecureDeployment, reader); } // Must add credentials after the deployment is added. resourcesToAdd.add(addSecureDeployment); resourcesToAdd.addAll(credentialsToAdd); resourcesToAdd.addAll(redirectRulesToAdd); }
private void readDeployment(XMLExtendedStreamReader reader, List<ModelNode> resourcesToAdd) throws XMLStreamException { String name = readNameAttribute(reader); ModelNode addSecureDeployment = new ModelNode(); addSecureDeployment.get(ModelDescriptionConstants.OP).set(ModelDescriptionConstants.ADD); PathAddress addr = PathAddress.pathAddress(PathElement.pathElement(ModelDescriptionConstants.SUBSYSTEM, KeycloakExtension.SUBSYSTEM_NAME), PathElement.pathElement(SecureDeploymentDefinition.TAG_NAME, name)); addSecureDeployment.get(ModelDescriptionConstants.OP_ADDR).set(addr.toModelNode()); List<ModelNode> credentialsToAdd = new ArrayList<ModelNode>(); while (reader.hasNext() && nextTag(reader) != END_ELEMENT) { String tagName = reader.getLocalName(); if (tagName.equals(CredentialDefinition.TAG_NAME)) { readCredential(reader, addr, credentialsToAdd); continue; } SimpleAttributeDefinition def = SecureDeploymentDefinition.lookup(tagName); if (def == null) throw new XMLStreamException("Unknown secure-deployment tag " + tagName); def.parseAndSetParameter(reader.getElementText(), addSecureDeployment, reader); } /** * TODO need to check realm-ref first. if (!SharedAttributeDefinitons.validateTruststoreSetIfRequired(addSecureDeployment)) { //TODO: externalize the message throw new XMLStreamException("truststore and truststore-password must be set if ssl-required is not none and disable-trust-maanger is false."); } */ // Must add credentials after the deployment is added. resourcesToAdd.add(addSecureDeployment); resourcesToAdd.addAll(credentialsToAdd); }
/** * {@inheritDoc} */ @Override public void readElement(final XMLExtendedStreamReader reader, final List<ModelNode> list) throws XMLStreamException { // Require no attributes ParseUtils.requireNoAttributes(reader); ModelNode addKeycloakSub = Util.createAddOperation(PathAddress.pathAddress(KeycloakExtension.PATH_SUBSYSTEM)); list.add(addKeycloakSub); while (reader.hasNext() && nextTag(reader) != END_ELEMENT) { if (reader.getLocalName().equals(RealmDefinition.TAG_NAME)) { readRealm(reader, list); } else if (reader.getLocalName().equals(SecureDeploymentDefinition.TAG_NAME)) { readDeployment(reader, list); } } }
/** * {@inheritDoc} */ @Override public void readElement(final XMLExtendedStreamReader reader, final List<ModelNode> list) throws XMLStreamException { // Require no attributes ParseUtils.requireNoAttributes(reader); ModelNode addKeycloakSub = Util.createAddOperation(PathAddress.pathAddress(KeycloakExtension.PATH_SUBSYSTEM)); list.add(addKeycloakSub); while (reader.hasNext() && nextTag(reader) != END_ELEMENT) { if (reader.getLocalName().equals(RealmDefinition.TAG_NAME)) { readRealm(reader, list); } else if (reader.getLocalName().equals(SecureDeploymentDefinition.TAG_NAME)) { readDeployment(reader, list); } else if (reader.getLocalName().equals(SecureServerDefinition.TAG_NAME)) { readSecureServer(reader, list); } } }