summaryrefslogtreecommitdiffstats
path: root/base/server/cms/src/com/netscape
diff options
context:
space:
mode:
authorAde Lee <alee@redhat.com>2016-04-16 11:48:52 -0400
committerAde Lee <alee@redhat.com>2016-04-20 17:29:58 -0400
commit90f5798079ffe46502552daaddd1b6366eafac62 (patch)
tree96772f0d751ff2a34c33276907078a1ba1c7e4d1 /base/server/cms/src/com/netscape
parent9a1eabe3ed5332cb5fbd27deecd4193f38e9fbcb (diff)
downloadpki-90f5798079ffe46502552daaddd1b6366eafac62.tar.gz
pki-90f5798079ffe46502552daaddd1b6366eafac62.tar.xz
pki-90f5798079ffe46502552daaddd1b6366eafac62.zip
Added realm for archival and key generation through REST
This will allow users to specify the realm when generating or archiving a request. No interface change is needed (yet) because the extra parameter is passed through the request. Part of Ticket #2041
Diffstat (limited to 'base/server/cms/src/com/netscape')
-rw-r--r--base/server/cms/src/com/netscape/cms/servlet/key/KeyRequestDAO.java26
1 files changed, 25 insertions, 1 deletions
diff --git a/base/server/cms/src/com/netscape/cms/servlet/key/KeyRequestDAO.java b/base/server/cms/src/com/netscape/cms/servlet/key/KeyRequestDAO.java
index b64326872..3d5300370 100644
--- a/base/server/cms/src/com/netscape/cms/servlet/key/KeyRequestDAO.java
+++ b/base/server/cms/src/com/netscape/cms/servlet/key/KeyRequestDAO.java
@@ -176,6 +176,7 @@ public class KeyRequestDAO extends CMSRequestDAO {
String keyAlgorithm = data.getKeyAlgorithm();
int keyStrength = dataType.equals(KeyRequestResource.SYMMETRIC_KEY_TYPE) ?
data.getKeySize(): 0;
+ String realm = data.getRealm();
boolean keyExists = doesKeyExist(clientKeyId, "active");
@@ -204,6 +205,10 @@ public class KeyRequestDAO extends CMSRequestDAO {
request.setExtData(IRequest.ATTR_REQUEST_OWNER, owner);
+ if (realm != null) {
+ request.setRealm(realm);
+ }
+
queue.processRequest(request);
queue.markAsServiced(request);
@@ -229,8 +234,9 @@ public class KeyRequestDAO extends CMSRequestDAO {
IRequest request = queue.newRequest(IRequest.SECURITY_DATA_RECOVERY_REQUEST);
KeyId keyId = data.getKeyId();
+ IKeyRecord rec = null;
try {
- repo.readKeyRecord(keyId.toBigInteger());
+ rec = repo.readKeyRecord(keyId.toBigInteger());
} catch (EDBRecordNotFoundException e) {
throw new KeyNotFoundException(keyId);
}
@@ -262,6 +268,10 @@ public class KeyRequestDAO extends CMSRequestDAO {
request.setExtData(IRequest.ATTR_REQUEST_OWNER, requestor);
request.setExtData(IRequest.ATTR_APPROVE_AGENTS, requestor);
+ if (rec.getRealm() != null) {
+ request.setRealm(rec.getRealm());
+ }
+
queue.processRequest(request);
return createKeyRequestResponse(request, uriInfo);
@@ -274,6 +284,7 @@ public class KeyRequestDAO extends CMSRequestDAO {
Integer keySize = data.getKeySize();
List<String> usages = data.getUsages();
String transWrappedSessionKey = data.getTransWrappedSessionKey();
+ String realm = data.getRealm();
if (StringUtils.isBlank(clientKeyId)) {
throw new BadRequestException("Invalid key generation request. Missing client ID");
@@ -322,6 +333,10 @@ public class KeyRequestDAO extends CMSRequestDAO {
transWrappedSessionKey);
}
+ if (realm != null) {
+ request.setRealm(realm);
+ }
+
queue.processRequest(request);
queue.markAsServiced(request);
@@ -335,6 +350,7 @@ public class KeyRequestDAO extends CMSRequestDAO {
Integer keySize = data.getKeySize();
List<String> usages = data.getUsages();
String transWrappedSessionKey = data.getTransWrappedSessionKey();
+ String realm = data.getRealm();
if (StringUtils.isBlank(clientKeyId)) {
throw new BadRequestException("Invalid key generation request. Missing client ID");
@@ -403,6 +419,10 @@ public class KeyRequestDAO extends CMSRequestDAO {
transWrappedSessionKey);
}
+ if (realm != null) {
+ request.setRealm(realm);
+ }
+
queue.processRequest(request);
queue.markAsServiced(request);
@@ -450,6 +470,10 @@ public class KeyRequestDAO extends CMSRequestDAO {
ret.setKeyURL(keyBuilder.build().toString());
}
+ if (request.getRealm()!= null) {
+ ret.setRealm(request.getRealm());
+ }
+
return ret;
}