summaryrefslogtreecommitdiffstats
path: root/base/server/cms
diff options
context:
space:
mode:
Diffstat (limited to 'base/server/cms')
-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;
}