Example #1
0
  private static void writeAddressSettings(
      final XMLExtendedStreamWriter writer, final ModelNode node) throws XMLStreamException {
    if (!node.isDefined()) {
      return;
    }
    List<Property> properties = node.asPropertyList();
    if (!properties.isEmpty()) {
      writer.writeStartElement(Element.ADDRESS_SETTINGS.getLocalName());
      for (Property matchSetting : properties) {
        writer.writeStartElement(Element.ADDRESS_SETTING.getLocalName());
        writer.writeAttribute(Attribute.MATCH.getLocalName(), matchSetting.getName());
        final ModelNode setting = matchSetting.getValue();

        for (AttributeDefinition attribute : AddressSettingDefinition.ATTRIBUTES) {
          attribute.marshallAsElement(setting, writer);
        }

        writer.writeEndElement();
      }
      writer.writeEndElement();
      writeNewLine(writer);
    }
  }
Example #2
0
  private static void writeSecuritySettings(
      final XMLExtendedStreamWriter writer, final ModelNode node) throws XMLStreamException {
    if (!node.isDefined()) {
      return;
    }
    List<Property> properties = node.asPropertyList();
    if (!properties.isEmpty()) {
      writer.writeStartElement(Element.SECURITY_SETTINGS.getLocalName());

      for (Property matchRoles : properties) {
        writer.writeStartElement(Element.SECURITY_SETTING.getLocalName());
        writer.writeAttribute(Attribute.MATCH.getLocalName(), matchRoles.getName());

        // TODO use a custom attribute marshaller
        if (matchRoles.getValue().hasDefined(ROLE)) {

          ArrayList<String> send = new ArrayList<String>();
          ArrayList<String> consume = new ArrayList<String>();
          ArrayList<String> createDurableQueue = new ArrayList<String>();
          ArrayList<String> deleteDurableQueue = new ArrayList<String>();
          ArrayList<String> createNonDurableQueue = new ArrayList<String>();
          ArrayList<String> deleteNonDurableQueue = new ArrayList<String>();
          ArrayList<String> manageRoles = new ArrayList<String>();

          for (Property rolePerms : matchRoles.getValue().get(ROLE).asPropertyList()) {
            final String role = rolePerms.getName();
            final ModelNode perms = rolePerms.getValue();
            if (perms.get(SecurityRoleDefinition.SEND.getName()).asBoolean(false)) {
              send.add(role);
            }
            if (perms.get(SecurityRoleDefinition.CONSUME.getName()).asBoolean(false)) {
              consume.add(role);
            }
            if (perms.get(SecurityRoleDefinition.CREATE_DURABLE_QUEUE.getName()).asBoolean(false)) {
              createDurableQueue.add(role);
            }
            if (perms.get(SecurityRoleDefinition.DELETE_DURABLE_QUEUE.getName()).asBoolean(false)) {
              deleteDurableQueue.add(role);
            }
            if (perms
                .get(SecurityRoleDefinition.CREATE_NON_DURABLE_QUEUE.getName())
                .asBoolean(false)) {
              createNonDurableQueue.add(role);
            }
            if (perms
                .get(SecurityRoleDefinition.DELETE_NON_DURABLE_QUEUE.getName())
                .asBoolean(false)) {
              deleteNonDurableQueue.add(role);
            }
            if (perms.get(SecurityRoleDefinition.MANAGE.getName()).asBoolean(false)) {
              manageRoles.add(role);
            }
          }

          writePermission(writer, SecurityRoleDefinition.SEND.getXmlName(), send);
          writePermission(writer, SecurityRoleDefinition.CONSUME.getXmlName(), consume);
          writePermission(
              writer, SecurityRoleDefinition.CREATE_DURABLE_QUEUE.getXmlName(), createDurableQueue);
          writePermission(
              writer, SecurityRoleDefinition.DELETE_DURABLE_QUEUE.getXmlName(), deleteDurableQueue);
          writePermission(
              writer,
              SecurityRoleDefinition.CREATE_NON_DURABLE_QUEUE.getXmlName(),
              createNonDurableQueue);
          writePermission(
              writer,
              SecurityRoleDefinition.DELETE_NON_DURABLE_QUEUE.getXmlName(),
              deleteNonDurableQueue);
          writePermission(writer, SecurityRoleDefinition.MANAGE.getXmlName(), manageRoles);
        }

        writer.writeEndElement();
      }

      writer.writeEndElement();
      writeNewLine(writer);
    }
  }