diff options
author | Ade Lee <alee@redhat.com> | 2016-04-16 11:48:52 -0400 |
---|---|---|
committer | Ade Lee <alee@redhat.com> | 2016-04-20 17:29:58 -0400 |
commit | 90f5798079ffe46502552daaddd1b6366eafac62 (patch) | |
tree | 96772f0d751ff2a34c33276907078a1ba1c7e4d1 /base/server/cms/src/com/netscape | |
parent | 9a1eabe3ed5332cb5fbd27deecd4193f38e9fbcb (diff) | |
download | pki-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.java | 26 |
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; } |