ServerConfigXML.java revision 4a7f808b184baa22b7d071d69828421f4cbd79db
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync/*
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync *
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * Copyright (c) 2007 Sun Microsystems Inc. All Rights Reserved
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync *
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * The contents of this file are subject to the terms
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * of the Common Development and Distribution License
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * (the License). You may not use this file except in
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * compliance with the License.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync *
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * You can obtain a copy of the License at
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * https://opensso.dev.java.net/public/CDDLv1.0.html or
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * opensso/legal/CDDLv1.0.txt
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * See the License for the specific language governing
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * permission and limitations under the License.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync *
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * When distributing Covered Code, include this CDDL
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * Header Notice in each file and include the License file
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * at opensso/legal/CDDLv1.0.txt.
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * If applicable, add the following below the CDDL Header,
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * with the fields enclosed by brackets [] replaced by
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * your own identifying information:
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * "Portions Copyrighted [year] [name of copyright owner]"
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync *
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * $Id: ServerConfigXML.java,v 1.3 2009/08/24 21:04:20 veiming Exp $
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync *
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * Portions Copyrighted 2011-2016 ForgeRock AS.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync */
9562e2d410460d8fae06fa24297f172fee1d1995vboxsyncpackage com.sun.identity.common.configuration;
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync
6728a36898fd2be125a28e84d2115d19aa4923edvboxsyncimport com.iplanet.services.ldap.DSConfigMgr;
6728a36898fd2be125a28e84d2115d19aa4923edvboxsyncimport com.sun.identity.shared.xml.XMLUtils;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsyncimport java.io.ByteArrayInputStream;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsyncimport java.io.Serializable;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsyncimport java.util.ArrayList;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsyncimport java.util.Iterator;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsyncimport java.util.List;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsyncimport org.w3c.dom.Document;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsyncimport org.w3c.dom.Element;
6728a36898fd2be125a28e84d2115d19aa4923edvboxsyncimport org.w3c.dom.Node;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsyncimport org.w3c.dom.NodeList;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsyncimport org.w3c.dom.Text;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync/**
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * Server Configuration XML object.
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync */
9562e2d410460d8fae06fa24297f172fee1d1995vboxsyncpublic class ServerConfigXML implements Serializable {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync private ServerGroup defaultServerGroup;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync private ServerGroup smsServerGroup;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync /**
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * Creates an object representing server configuration XML.
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync *
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * @param xml the server configuration XML.
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * @throws Exception if the XML is invalid.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync */
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public ServerConfigXML(String xml)
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync throws Exception
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync {
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync Document doc = XMLUtils.getXMLDocument(
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync new ByteArrayInputStream(xml.getBytes("UTF-8")));
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync Node root = XMLUtils.getRootNode(doc,
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync DSConfigMgr.ROOT);
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync defaultServerGroup = new ServerGroup(XMLUtils.getNamedChildNode(root,
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync DSConfigMgr.SERVERGROUP, DSConfigMgr.NAME, DSConfigMgr.DEFAULT));
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync smsServerGroup = new ServerGroup(XMLUtils.getNamedChildNode(root,
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync DSConfigMgr.SERVERGROUP, DSConfigMgr.NAME, "sms"));
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync }
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync /**
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * Returns the default server group.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync *
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * @return the default server group.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync */
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public ServerGroup getDefaultServerGroup() {
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync return defaultServerGroup;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync }
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync /**
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * Returns the SMS server group.
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync *
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * @return the SMS server group.
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync */
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync public ServerGroup getSMSServerGroup() {
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync return smsServerGroup;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync }
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync /**
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * Returns the XML representation of this object.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync *
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * @return the XML representation of this object.
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync */
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync public String toXML() {
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync StringBuilder buff = new StringBuilder();
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync buff.append("<").append(DSConfigMgr.ROOT).append(">\n");
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync buff.append(defaultServerGroup.toXML(DSConfigMgr.DEFAULT));
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync buff.append(smsServerGroup.toXML("sms"));
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync buff.append("</").append( DSConfigMgr.ROOT).append(">\n");
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync return buff.toString();
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync }
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync /**
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * Server Group Object.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync */
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync public class ServerGroup implements Serializable {
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync public int minPool;
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync public int maxPool;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public List<ServerObject> hosts = new ArrayList<>();
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public List<DirUserObject> dsUsers = new ArrayList<>();
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public String dsBaseDN;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync /**
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * Constructs a Server Group object.
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync *
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * @param node XML node for Server Group blob.
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync */
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public ServerGroup(Node node) {
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync Element elm = (Element)node;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync minPool = Integer.parseInt(elm.getAttribute(
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync DSConfigMgr.MIN_CONN_POOL));
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync maxPool = Integer.parseInt(elm.getAttribute(
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync DSConfigMgr.MAX_CONN_POOL));
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync NodeList children = node.getChildNodes();
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync for (int i = 0; i < children.getLength(); i++) {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync Node n = children.item(i);
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync if (n.getNodeName().equalsIgnoreCase(DSConfigMgr.SERVER)) {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync hosts.add(new ServerObject(n));
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync } else if (n.getNodeName().equals(DSConfigMgr.USER)) {
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync dsUsers.add(new DirUserObject(n));
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync } else if (n.getNodeName().equals(DSConfigMgr.BASE_DN)) {
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync dsBaseDN = ((Text)n.getFirstChild()).getNodeValue();
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync }
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync }
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync }
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync /**
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * Adds a host to the group.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync *
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * @param name Server name.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * @param host Host name.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * @param port Port number.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * @param type Connection type i.e. Simple/SSL.
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync */
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync public void addHost(String name, String host, String port, String type)
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync throws ConfigurationException {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync for (Iterator i = hosts.iterator(); i.hasNext(); ) {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync ServerObject test = (ServerObject)i.next();
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync if (test.name.equals(name)) {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync String[] param = {name};
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync throw new ConfigurationException(
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync "exception.serverconfig.xml.server.name.exist", param);
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync }
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync }
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync try {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync Integer.parseInt(port);
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync } catch (NumberFormatException ex) {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync String[] param = {port};
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync throw new ConfigurationException(
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync "exception.serverconfig.xml.port.number.no.integer", param);
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync }
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync ServerObject obj = new ServerObject();
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync obj.name = name;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync obj.host = host;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync obj.port = port;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync obj.type = type;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync hosts.add(obj);
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync }
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync /**
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * Returns the XML representation of this object.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync *
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * @param groupName Server Group Name.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * @return the XML representation of this object.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync */
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public String toXML(String groupName) {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync StringBuilder buff = new StringBuilder();
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync buff.append("<").append(DSConfigMgr.SERVERGROUP)
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync .append(" ")
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync .append(DSConfigMgr.NAME).append("=\"")
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync .append(groupName).append("\"")
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync .append(" ")
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync .append(DSConfigMgr.MIN_CONN_POOL).append("=\"")
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync .append(Integer.toString(minPool)).append("\"")
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync .append(" ")
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync .append(DSConfigMgr.MAX_CONN_POOL).append("=\"")
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync .append(Integer.toString(maxPool)).append("\"")
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync .append(">\n");
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync for (Iterator i = hosts.iterator(); i.hasNext(); ) {
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync ServerObject s = (ServerObject)i.next();
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync buff.append(s.toXML());
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync }
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync for (Iterator i = dsUsers.iterator(); i.hasNext(); ) {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync DirUserObject s = (DirUserObject)i.next();
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync buff.append(s.toXML());
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync }
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync buff.append("<").append(DSConfigMgr.BASE_DN).append(">");
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync buff.append(dsBaseDN);
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync buff.append("</").append(DSConfigMgr.BASE_DN).append(">\n");
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync buff.append("</").append(DSConfigMgr.SERVERGROUP).append(">\n");
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync return buff.toString();
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync }
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync }
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync /**
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * Server object.
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync */
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public static class ServerObject implements Serializable {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public String name;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public String host;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public String port;
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync public String type;
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync /**
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * Constructs a Server object.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync */
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public ServerObject() {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync }
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync /**
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync * Constructs a Server object.
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync *
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync * @param node XML node for directory user blob.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync */
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public ServerObject(Node node) {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync Element elm = (Element)node;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync name = elm.getAttribute(DSConfigMgr.NAME);
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync host = elm.getAttribute(DSConfigMgr.HOST);
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync port = elm.getAttribute(DSConfigMgr.PORT);
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync type = elm.getAttribute(DSConfigMgr.AUTH_TYPE);
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync }
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync /**
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * Returns the XML representation of this object.
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync *
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync * @return the XML representation of this object.
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync */
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public String toXML() {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync StringBuilder buff = new StringBuilder();
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync buff.append("<").append(DSConfigMgr.SERVER)
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync .append(" ")
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync .append(DSConfigMgr.NAME).append("=\"")
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync .append(name).append("\"")
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync .append(" ")
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync .append(DSConfigMgr.HOST).append("=\"")
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync .append(host).append("\"")
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync .append(" ")
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync .append(DSConfigMgr.PORT).append("=\"")
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync .append(port).append("\"")
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync .append(" ")
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync .append(DSConfigMgr.AUTH_TYPE).append("=\"")
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync .append(type).append("\"")
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync .append(" />\n");
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync return buff.toString();
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync }
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync }
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync
ac153c99053f1edf42b00bf3a13475923bc4fcf1vboxsync
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync /**
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * Directory User object.
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync */
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public class DirUserObject implements Serializable {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public String name;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public String type;
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public String dn;
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync public String password;
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync /**
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * Constructs a directory User object.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync *
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * @param node XML node for directory user blob.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync */
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync public DirUserObject(Node node) {
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync Element elm = (Element)node;
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync name = elm.getAttribute(DSConfigMgr.NAME);
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync type = elm.getAttribute(DSConfigMgr.AUTH_TYPE);
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync NodeList children = node.getChildNodes();
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync for (int i = 0; i < children.getLength(); i++) {
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync Node n = children.item(i);
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync if (n.getNodeName().equalsIgnoreCase(DSConfigMgr.AUTH_ID)) {
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync dn = ((Text)n.getFirstChild()).getNodeValue();
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync } else if (n.getNodeName().equalsIgnoreCase(
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync DSConfigMgr.AUTH_PASSWD)
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync ) {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync password = ((Text)n.getFirstChild()).getNodeValue();
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync }
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync }
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync }
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync /**
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync * Returns the XML representation of this object.
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync *
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync * @return the XML representation of this object.
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync */
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync public String toXML() {
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync StringBuilder buff = new StringBuilder();
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync buff.append("<").append(DSConfigMgr.USER)
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync .append(" ")
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync .append(DSConfigMgr.NAME).append("=\"")
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync .append(name).append("\"")
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync .append(" ")
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync .append(DSConfigMgr.AUTH_TYPE).append("=\"")
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync .append(type).append("\"")
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync .append(">\n");
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync buff.append("<").append(DSConfigMgr.AUTH_ID).append(">");
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync buff.append(dn);
9562e2d410460d8fae06fa24297f172fee1d1995vboxsync buff.append("</").append(DSConfigMgr.AUTH_ID).append(">\n");
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync buff.append("<").append(DSConfigMgr.AUTH_PASSWD).append(">");
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync buff.append(password);
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync buff.append("</").append(DSConfigMgr.AUTH_PASSWD).append(">\n");
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync buff.append("</" + DSConfigMgr.USER + ">\n");
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync return buff.toString();
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync }
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync }
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync}
6728a36898fd2be125a28e84d2115d19aa4923edvboxsync