diff options
author | Endi Sukma Dewata <edewata@redhat.com> | 2012-10-25 11:52:15 -0500 |
---|---|---|
committer | Endi Sukma Dewata <edewata@redhat.com> | 2012-10-29 10:38:38 -0500 |
commit | c1aa8b2d05cb1873990d1a3e9cf007cca240f135 (patch) | |
tree | f12c76eaa1c385a79e40e7b38123360279c05fc0 /base/common/src/com/netscape/certsrv/cert/CertRequestInfos.java | |
parent | 748605a324266bb515a3d1124bc55deb3be4df71 (diff) | |
download | pki-c1aa8b2d05cb1873990d1a3e9cf007cca240f135.tar.gz pki-c1aa8b2d05cb1873990d1a3e9cf007cca240f135.tar.xz pki-c1aa8b2d05cb1873990d1a3e9cf007cca240f135.zip |
Enabled authentication for key services.
The web.xml in KRA has been modified to enable the authentication
for key and key request services. Some tools have been added to
access the services via command-line.
Ticket #376
Diffstat (limited to 'base/common/src/com/netscape/certsrv/cert/CertRequestInfos.java')
-rw-r--r-- | base/common/src/com/netscape/certsrv/cert/CertRequestInfos.java | 121 |
1 files changed, 109 insertions, 12 deletions
diff --git a/base/common/src/com/netscape/certsrv/cert/CertRequestInfos.java b/base/common/src/com/netscape/certsrv/cert/CertRequestInfos.java index 028bff583..a6a520c23 100644 --- a/base/common/src/com/netscape/certsrv/cert/CertRequestInfos.java +++ b/base/common/src/com/netscape/certsrv/cert/CertRequestInfos.java @@ -17,24 +17,38 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.certsrv.cert; +import java.io.StringReader; +import java.io.StringWriter; +import java.util.ArrayList; import java.util.Collection; import java.util.List; +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.XmlElement; import javax.xml.bind.annotation.XmlElementRef; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; import com.netscape.certsrv.base.Link; +import com.netscape.certsrv.request.RequestStatus; @XmlRootElement(name = "CertRequestInfos") +@XmlAccessorType(XmlAccessType.FIELD) public class CertRequestInfos { - protected Collection<CertRequestInfo> requests; - protected List<Link> links; + + @XmlElementRef + protected Collection<CertRequestInfo> requests = new ArrayList<CertRequestInfo>(); + + @XmlElement(name = "Links") + protected List<Link> links = new ArrayList<Link>(); /** * @return the requests */ - @XmlElementRef public Collection<CertRequestInfo> getRequests() { return requests; } @@ -43,13 +57,21 @@ public class CertRequestInfos { * @param requests the requests to set */ public void setRequests(Collection<CertRequestInfo> requests) { - this.requests = requests; + this.requests.clear(); + if (requests == null) return; + this.requests.addAll(requests); + } + + /** + * @param requests the request to add + */ + public void addRequest(CertRequestInfo request) { + requests.add(request); } /** * @return the links */ - @XmlElementRef public List<Link> getLinks() { return links; } @@ -58,14 +80,20 @@ public class CertRequestInfos { * @param links the links to set */ public void setLinks(List<Link> links) { - this.links = links; + this.links.clear(); + if (links == null) return; + this.links.addAll(links); + } + + /** + * @param links the link to add + */ + public void addLink(Link link) { + links.add(link); } @XmlTransient public String getNext() { - if (links == null) { - return null; - } for (Link link : links) { if ("next".equals(link.getRelationship())) { return link.getHref(); @@ -76,9 +104,6 @@ public class CertRequestInfos { @XmlTransient public String getPrevious() { - if (links == null) { - return null; - } for (Link link : links) { if ("previous".equals(link.getRelationship())) { return link.getHref(); @@ -86,4 +111,76 @@ public class CertRequestInfos { } return null; } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((links == null) ? 0 : links.hashCode()); + result = prime * result + ((requests == null) ? 0 : requests.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + CertRequestInfos other = (CertRequestInfos) obj; + if (links == null) { + if (other.links != null) + return false; + } else if (!links.equals(other.links)) + return false; + if (requests == null) { + if (other.requests != null) + return false; + } else if (!requests.equals(other.requests)) + return false; + return true; + } + + public String toString() { + try { + StringWriter sw = new StringWriter(); + Marshaller marshaller = JAXBContext.newInstance(CertRequestInfos.class).createMarshaller(); + marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + marshaller.marshal(this, sw); + return sw.toString(); + + } catch (Exception e) { + return super.toString(); + } + } + + public static CertRequestInfos valueOf(String string) throws Exception { + try { + Unmarshaller unmarshaller = JAXBContext.newInstance(CertRequestInfos.class).createUnmarshaller(); + return (CertRequestInfos)unmarshaller.unmarshal(new StringReader(string)); + } catch (Exception e) { + return null; + } + } + + public static void main(String args[]) throws Exception { + + CertRequestInfos before = new CertRequestInfos(); + + CertRequestInfo request = new CertRequestInfo(); + request.setRequestType("enrollment"); + request.setRequestStatus(RequestStatus.COMPLETE); + request.setCertRequestType("pkcs10"); + before.addRequest(request); + + String string = before.toString(); + System.out.println(string); + + CertRequestInfos after = CertRequestInfos.valueOf(string); + System.out.println(after); + + System.out.println(request.equals(after)); + } } |