summaryrefslogtreecommitdiffstats
path: root/base/common/src/com/netscape/cms/servlet/request/model/EnrollmentRequestData.java
diff options
context:
space:
mode:
Diffstat (limited to 'base/common/src/com/netscape/cms/servlet/request/model/EnrollmentRequestData.java')
-rw-r--r--base/common/src/com/netscape/cms/servlet/request/model/EnrollmentRequestData.java143
1 files changed, 131 insertions, 12 deletions
diff --git a/base/common/src/com/netscape/cms/servlet/request/model/EnrollmentRequestData.java b/base/common/src/com/netscape/cms/servlet/request/model/EnrollmentRequestData.java
index f2979ebce..caff0261d 100644
--- a/base/common/src/com/netscape/cms/servlet/request/model/EnrollmentRequestData.java
+++ b/base/common/src/com/netscape/cms/servlet/request/model/EnrollmentRequestData.java
@@ -24,8 +24,10 @@ package com.netscape.cms.servlet.request.model;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import javax.ws.rs.core.MultivaluedMap;
import javax.xml.bind.JAXBContext;
@@ -38,6 +40,7 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import com.netscape.cms.servlet.profile.model.ProfileInput;
+import com.netscape.cms.servlet.profile.model.ProfileOutput;
/**
* @author jmagne
@@ -50,6 +53,7 @@ public class EnrollmentRequestData {
private static final String PROFILE_ID = "profileId";
private static final String RENEWAL = "renewal";
+ private static final String SERIAL_NUM = "serial_num";
@XmlElement
protected String profileId;
@@ -57,18 +61,30 @@ public class EnrollmentRequestData {
@XmlElement
protected boolean isRenewal;
+ @XmlElement
+ protected String serialNum; // used for one type of renewal
+
+ @XmlElement
+ protected String remoteHost;
+
+ @XmlElement
+ protected String remoteAddr;
+
@XmlElement(name = "Input")
protected List<ProfileInput> inputs = new ArrayList<ProfileInput>();
+ @XmlElement(name = "Output")
+ protected List<ProfileOutput> outputs = new ArrayList<ProfileOutput>();
+
public EnrollmentRequestData() {
+ // required for jaxb
}
public EnrollmentRequestData(MultivaluedMap<String, String> form) {
profileId = form.getFirst(PROFILE_ID);
String renewalStr = form.getFirst(RENEWAL);
-
+ serialNum = form.getFirst(SERIAL_NUM);
isRenewal = new Boolean(renewalStr);
-
}
/**
@@ -94,7 +110,22 @@ public class EnrollmentRequestData {
return isRenewal;
}
- public ProfileInput addInput(String name) {
+ public void addInput(ProfileInput input) {
+ ProfileInput curInput = getInput(input.getInputId());
+ if (curInput != null) {
+ getInputs().remove(curInput);
+ }
+ getInputs().add(input);
+ }
+
+ public void deleteInput(ProfileInput input) {
+ ProfileInput curInput = getInput(input.getInputId());
+ if (curInput != null) {
+ getInputs().remove(curInput);
+ }
+ }
+
+ public ProfileInput createInput(String name) {
ProfileInput oldInput = getInput(name);
@@ -104,7 +135,7 @@ public class EnrollmentRequestData {
ProfileInput newInput = new ProfileInput();
newInput.setInputId(name);
- inputs.add(newInput);
+ getInputs().add(newInput);
return newInput;
}
@@ -113,14 +144,11 @@ public class EnrollmentRequestData {
ProfileInput input = null;
- Iterator<ProfileInput> it = inputs.iterator();
+ Iterator<ProfileInput> it = getInputs().iterator();
ProfileInput curInput = null;
- while (it.hasNext())
-
- {
+ while (it.hasNext()) {
curInput = it.next();
-
if (curInput != null && curInput.getInputId().equals(name))
break;
}
@@ -128,6 +156,35 @@ public class EnrollmentRequestData {
return input;
}
+ public void addOutput(ProfileOutput output) {
+ ProfileOutput curOutput = getOutput(output.getOutputId());
+ if (curOutput != null) {
+ getOutputs().remove(curOutput);
+ }
+ getOutputs().add(output);
+ }
+
+ public void deleteOutput(ProfileOutput output) {
+ ProfileOutput curOutput = getOutput(output.getOutputId());
+ if (curOutput != null) {
+ getInputs().remove(curOutput);
+ }
+ }
+
+ public ProfileOutput getOutput(String name) {
+ ProfileOutput output = null;
+ ProfileOutput curOutput = null;
+
+ Iterator<ProfileOutput> it = getOutputs().iterator();
+ while (it.hasNext()) {
+ curOutput = it.next();
+ if (curOutput != null && curOutput.getOutputId().equals(name))
+ break;
+ }
+
+ return output;
+ }
+
/**
* @param renewal the renewal to set
*/
@@ -135,6 +192,24 @@ public class EnrollmentRequestData {
this.isRenewal = isRenewal;
}
+ public HashMap<String, String> toParams() {
+ HashMap<String, String> ret = new HashMap<String, String>();
+ ret.put("isRenewal", Boolean.valueOf(isRenewal).toString());
+ if (profileId != null) ret.put(PROFILE_ID, profileId);
+ if (serialNum != null) ret.put(SERIAL_NUM, serialNum);
+ if (remoteHost != null) ret.put("remoteHost", remoteHost);
+ if (remoteAddr != null) ret.put("remoteAddr", remoteAddr);
+
+ for (ProfileInput input: inputs) {
+ Map<String, String> attrs = input.getAttributes();
+ for (Map.Entry<String, String> entry: attrs.entrySet()) {
+ ret.put(entry.getKey(), entry.getValue());
+ }
+ }
+
+ return ret;
+ }
+
public static void main(String args[]) throws Exception {
EnrollmentRequestData data = new EnrollmentRequestData();
data.setProfileId("caUserCert");
@@ -142,13 +217,13 @@ public class EnrollmentRequestData {
//Simulate a "caUserCert" Profile enrollment
- ProfileInput certReq = data.addInput("KeyGenInput");
+ ProfileInput certReq = data.createInput("KeyGenInput");
certReq.setInputAttr("cert_request_type", "crmf");
certReq.setInputAttr(
"cert_request",
"MIIBozCCAZ8wggEFAgQBMQp8MIHHgAECpQ4wDDEKMAgGA1UEAxMBeKaBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA2NgaPHp0jiohcP4M+ufrJOZEqH8GV+liu5JLbT8nWpkfhC+8EUBqT6g+n3qroSxIcNVGNdcsBEqs1utvpItzyslAbpdyat3WwQep1dWMzo6RHrPDuIoxNA0Yka1n3qEX4U//08cLQtUv2bYglYgN/hOCNQemLV6vZWAv0n7zelkCAwEAAakQMA4GA1UdDwEB/wQEAwIF4DAzMBUGCSsGAQUFBwUBAQwIcmVnVG9rZW4wGgYJKwYBBQUHBQECDA1hdXRoZW50aWNhdG9yoYGTMA0GCSqGSIb3DQEBBQUAA4GBAJ1VOQcaSEhdHa94s8kifVbSZ2WZeYE5//qxL6wVlEst20vq4ybj13CetnbN3+WT49Zkwp7Fg+6lALKgSk47suTg3EbbQDm+8yOrC0nc/q4PTRoHl0alMmUxIhirYc1t3xoCMqJewmjX1bNP8lpVIZAYFZo4eZCpZaiSkM5BeHhz");
- ProfileInput subjectName = data.addInput("SubjectNameInput");
+ ProfileInput subjectName = data.createInput("SubjectNameInput");
subjectName.setInputAttr("sn_uid", "jmagne");
subjectName.setInputAttr("sn_e", "jmagne@redhat.com");
subjectName.setInputAttr("sn_c", "US");
@@ -159,7 +234,7 @@ public class EnrollmentRequestData {
subjectName.setInputAttr("sn_cn", "Common");
subjectName.setInputAttr("sn_o", "RedHat");
- ProfileInput submitter = data.addInput("SubmitterInfoInput");
+ ProfileInput submitter = data.createInput("SubmitterInfoInput");
submitter.setInputAttr("requestor_name", "admin");
submitter.setInputAttr("requestor_email", "admin@redhat.com");
submitter.setInputAttr("requestor_phone", "650-555-5555");
@@ -199,4 +274,48 @@ public class EnrollmentRequestData {
}
}
+ public String getSerialNum() {
+ return serialNum;
+ }
+
+ public void setSerialNum(String serialNum) {
+ this.serialNum = serialNum;
+ }
+
+ public List<ProfileInput> getInputs() {
+ return inputs;
+ }
+
+ public void setInputs(List<ProfileInput> inputs) {
+ this.inputs = inputs;
+ }
+
+ public String getRemoteAddr() {
+ return remoteAddr;
+ }
+
+ public void setRemoteAddr(String remoteAddr) {
+ this.remoteAddr = remoteAddr;
+ }
+
+ public String getRemoteHost() {
+ return remoteHost;
+ }
+
+ public void setRemoteHost(String remoteHost) {
+ this.remoteHost = remoteHost;
+ }
+
+ public List<ProfileOutput> getOutputs() {
+ return outputs;
+ }
+
+ public void setOutputs(List<ProfileOutput> outputs) {
+ this.outputs = outputs;
+ }
+
+ public void setRenewal(boolean isRenewal) {
+ this.isRenewal = isRenewal;
+ }
+
}