diff options
author | Endi Sukma Dewata <edewata@redhat.com> | 2012-09-06 16:33:48 -0500 |
---|---|---|
committer | Endi Sukma Dewata <edewata@redhat.com> | 2012-10-26 16:01:40 -0500 |
commit | 5bb7933dd00f11ec87237d3bad7756989abb59ee (patch) | |
tree | 25f3260511f604e247814d068aa14b5c8159bb7f /base/common/src/com/netscape/certsrv/system/DomainInfo.java | |
parent | 6359021315622e97ae3c074752548f915e4af00d (diff) | |
download | pki-5bb7933dd00f11ec87237d3bad7756989abb59ee.tar.gz pki-5bb7933dd00f11ec87237d3bad7756989abb59ee.tar.xz pki-5bb7933dd00f11ec87237d3bad7756989abb59ee.zip |
Added REST interface to get domain info.
The REST interface for security domain has been updated to provide
a method to get the domain info. A CLI has been provided to access
this method.
Ticket #309
Diffstat (limited to 'base/common/src/com/netscape/certsrv/system/DomainInfo.java')
-rw-r--r-- | base/common/src/com/netscape/certsrv/system/DomainInfo.java | 203 |
1 files changed, 106 insertions, 97 deletions
diff --git a/base/common/src/com/netscape/certsrv/system/DomainInfo.java b/base/common/src/com/netscape/certsrv/system/DomainInfo.java index 50b606af3..3f38c64ab 100644 --- a/base/common/src/com/netscape/certsrv/system/DomainInfo.java +++ b/base/common/src/com/netscape/certsrv/system/DomainInfo.java @@ -14,142 +14,151 @@ // // (C) 2012 Red Hat, Inc. // All rights reserved. -// --- END COPYRIGHT BLOCK --- +// --- END COPYRIGHT BLOCK --- package com.netscape.certsrv.system; +import java.io.StringReader; +import java.io.StringWriter; +import java.util.LinkedHashMap; +import java.util.Map; + +import javax.xml.bind.JAXBContext; +import javax.xml.bind.Marshaller; +import javax.xml.bind.Unmarshaller; +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; /** * @author alee - * */ @XmlRootElement(name="DomainInfo") +@XmlAccessorType(XmlAccessType.NONE) public class DomainInfo { - - @XmlElement(name="CAList") - protected SecurityDomainHostList caList; - - @XmlElement(name="KRAList") - protected SecurityDomainHostList kraList; - - @XmlElement(name="OCSPList") - protected SecurityDomainHostList ocspList; - - @XmlElement(name="TKSList") - protected SecurityDomainHostList tksList; - - @XmlElement(name="TPSList") - protected SecurityDomainHostList tpsList; - - @XmlElement(name="RAList") - protected SecurityDomainHostList raList; - - @XmlElement - protected String name; - - /** - * @return the name - */ + + String name; + Map<String, SecurityDomainSubsystem> subsystems = new LinkedHashMap<String, SecurityDomainSubsystem>(); + + @XmlAttribute(name="id") public String getName() { return name; } - /** - * @param name the name to set - */ public void setName(String name) { this.name = name; } - /** - * @return the caList - */ - public SecurityDomainHostList getCaList() { - return caList; + @XmlElement(name="Subsystem") + public SecurityDomainSubsystem[] getSubsystems() { + return subsystems.values().toArray(new SecurityDomainSubsystem[subsystems.size()]); } - /** - * @param caList the caList to set - */ - public void setCaList(SecurityDomainHostList caList) { - this.caList = caList; + public void setSubsystems(SecurityDomainSubsystem[] subsystems) { + this.subsystems.clear(); + for (SecurityDomainSubsystem subsystem : subsystems) { + this.subsystems.put(subsystem.name, subsystem); + } } - /** - * @return the kraList - */ - public SecurityDomainHostList getKraList() { - return kraList; + public SecurityDomainSubsystem getSubsystem(String type) { + return subsystems.get(type); } - /** - * @param kraList the kraList to set - */ - public void setKraList(SecurityDomainHostList kraList) { - this.kraList = kraList; + public void addSubsystem(SecurityDomainSubsystem subsystem) { + subsystems.put(subsystem.getName(), subsystem); } - /** - * @return the ocspList - */ - public SecurityDomainHostList getOcspList() { - return ocspList; + public void removeSubsystem(String type) { + subsystems.remove(type); } - /** - * @param ocspList the ocspList to set - */ - public void setOcspList(SecurityDomainHostList ocspList) { - this.ocspList = ocspList; + public void addHost(String type, SecurityDomainHost host) { + SecurityDomainSubsystem subsystem = getSubsystem(type); + if (subsystem == null) { + subsystem = new SecurityDomainSubsystem(); + subsystem.setName(type); + addSubsystem(subsystem); + } + subsystem.addHost(host); } - /** - * @return the tksList - */ - public SecurityDomainHostList getTksList() { - return tksList; + public void removeHost(String type, String hostId) { + SecurityDomainSubsystem subsystem = getSubsystem(type); + if (subsystem == null) return; + subsystem.removeHost(hostId); } - - /** - * @param tksList the tksList to set - */ - public void setTksList(SecurityDomainHostList tksList) { - this.tksList = tksList; + public String toString() { + try { + StringWriter sw = new StringWriter(); + Marshaller marshaller = JAXBContext.newInstance(DomainInfo.class).createMarshaller(); + marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + marshaller.marshal(this, sw); + return sw.toString(); + + } catch (Exception e) { + throw new RuntimeException(e); + } } - /** - * @return the tpsList - */ - public SecurityDomainHostList getTpsList() { - return tpsList; + public static DomainInfo valueOf(String string) throws Exception { + try { + Unmarshaller unmarshaller = JAXBContext.newInstance(DomainInfo.class).createUnmarshaller(); + return (DomainInfo)unmarshaller.unmarshal(new StringReader(string)); + } catch (Exception e) { + return null; + } } - /** - * @param tpsList the tpsList to set - */ - public void setTpsList(SecurityDomainHostList tpsList) { - this.tpsList = tpsList; + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + result = prime * result + ((subsystems == null) ? 0 : subsystems.hashCode()); + return result; } - /** - * @return the raList - */ - public SecurityDomainHostList getRaList() { - return raList; + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + DomainInfo other = (DomainInfo) obj; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + if (subsystems == null) { + if (other.subsystems != null) + return false; + } else if (!subsystems.equals(other.subsystems)) + return false; + return true; } - /** - * @param raList the raList to set - */ - public void setRaList(SecurityDomainHostList raList) { - this.raList = raList; - } + public static void main(String args[]) throws Exception { - - - - - + DomainInfo before = new DomainInfo(); + before.setName("EXAMPLE"); + SecurityDomainHost host = new SecurityDomainHost(); + host.setId("CA localhost:8443"); + host.setHostname("localhost"); + host.setPort("8080"); + host.setSecurePort("8443"); + + before.addHost("CA", host); + + String string = before.toString(); + System.out.println(string); + + DomainInfo after = DomainInfo.valueOf(string); + System.out.println(before.equals(after)); + } } |