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/key/KeyRequestInfos.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/key/KeyRequestInfos.java')
-rw-r--r-- | base/common/src/com/netscape/certsrv/key/KeyRequestInfos.java | 120 |
1 files changed, 108 insertions, 12 deletions
diff --git a/base/common/src/com/netscape/certsrv/key/KeyRequestInfos.java b/base/common/src/com/netscape/certsrv/key/KeyRequestInfos.java index 1fbd363d3..90756f8d3 100644 --- a/base/common/src/com/netscape/certsrv/key/KeyRequestInfos.java +++ b/base/common/src/com/netscape/certsrv/key/KeyRequestInfos.java @@ -17,24 +17,38 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.certsrv.key; +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 = "KeyRequestInfos") +@XmlAccessorType(XmlAccessType.FIELD) public class KeyRequestInfos { - protected Collection<KeyRequestInfo> requests; - protected List<Link> links; + + @XmlElementRef + protected Collection<KeyRequestInfo> requests = new ArrayList<KeyRequestInfo>(); + + @XmlElement(name = "Link") + protected List<Link> links = new ArrayList<Link>(); /** * @return the requests */ - @XmlElementRef public Collection<KeyRequestInfo> getRequests() { return requests; } @@ -43,13 +57,21 @@ public class KeyRequestInfos { * @param requests the requests to set */ public void setRequests(Collection<KeyRequestInfo> requests) { - this.requests = requests; + this.requests.clear(); + if (requests == null) return; + this.requests.addAll(requests); + } + + /** + * @param request the request to add + */ + public void addRequest(KeyRequestInfo request) { + requests.add(request); } /** * @return the links */ - @XmlElementRef public List<Link> getLinks() { return links; } @@ -58,14 +80,20 @@ public class KeyRequestInfos { * @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) { + this.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 KeyRequestInfos { @XmlTransient public String getPrevious() { - if (links == null) { - return null; - } for (Link link : links) { if ("previous".equals(link.getRelationship())) { return link.getHref(); @@ -86,4 +111,75 @@ public class KeyRequestInfos { } 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; + KeyRequestInfos other = (KeyRequestInfos) 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(KeyRequestInfos.class).createMarshaller(); + marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); + marshaller.marshal(this, sw); + return sw.toString(); + + } catch (Exception e) { + return super.toString(); + } + } + + public static KeyRequestInfos valueOf(String string) throws Exception { + try { + Unmarshaller unmarshaller = JAXBContext.newInstance(KeyRequestInfos.class).createUnmarshaller(); + return (KeyRequestInfos)unmarshaller.unmarshal(new StringReader(string)); + } catch (Exception e) { + return null; + } + } + + public static void main(String args[]) throws Exception { + + KeyRequestInfos before = new KeyRequestInfos(); + + KeyRequestInfo request = new KeyRequestInfo(); + request.setRequestType("securityDataEnrollment"); + request.setRequestStatus(RequestStatus.COMPLETE); + before.addRequest(request); + + String string = before.toString(); + System.out.println(string); + + KeyRequestInfos after = KeyRequestInfos.valueOf(string); + System.out.println(after); + + System.out.println(before.equals(after)); + } } |