diff options
author | Endi S. Dewata <edewata@redhat.com> | 2014-02-11 12:19:00 -0500 |
---|---|---|
committer | Endi S. Dewata <edewata@redhat.com> | 2014-02-18 11:34:48 -0500 |
commit | 1cfaa91e25df63fbe11e3da0c686071850c7a038 (patch) | |
tree | 7a5419d310824471704a9e071f7b2d557604c0eb /base/server | |
parent | 893e87ac497075a5917c5413d077be117f858d74 (diff) | |
download | pki-1cfaa91e25df63fbe11e3da0c686071850c7a038.tar.gz pki-1cfaa91e25df63fbe11e3da0c686071850c7a038.tar.xz pki-1cfaa91e25df63fbe11e3da0c686071850c7a038.zip |
Updated REST interface for users.
The REST interface for users has been modified to return Response objects
to allow better handling of server responses. Other REST interfaces will
be modified in subsequent patches. Once all interfaces are updated, the
client library can be updated to use RESTEasy 3.0 API. Clients using the
client library or XML/JSON directly are not affected by these changes.
Ticket #554
Diffstat (limited to 'base/server')
-rw-r--r-- | base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java | 69 | ||||
-rw-r--r-- | base/server/cms/src/com/netscape/cms/servlet/base/PKIService.java | 26 |
2 files changed, 59 insertions, 36 deletions
diff --git a/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java b/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java index 130103a87..70124b4f4 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java +++ b/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java @@ -131,7 +131,7 @@ public class UserService extends PKIService implements UserResource { * ui/admin-protocol-definition.html#user-admin */ @Override - public UserCollection findUsers(String filter, Integer start, Integer size) { + public Response findUsers(String filter, Integer start, Integer size) { try { filter = StringUtils.isEmpty(filter) ? "*" : "*"+LDAPUtil.escapeFilter(filter)+"*"; start = start == null ? 0 : start; @@ -165,7 +165,7 @@ public class UserService extends PKIService implements UserResource { response.addLink(new Link("next", uri)); } - return response; + return createOKResponse(response); } catch (Exception e) { throw new PKIException(getUserMessage("CMS_INTERNAL_ERROR", headers)); @@ -182,7 +182,11 @@ public class UserService extends PKIService implements UserResource { * ui/admin-protocol-definition.html#user-admin */ @Override - public UserData getUser(String userID) { + public Response getUser(String userID) { + return createOKResponse(getUserData(userID)); + } + + public UserData getUserData(String userID) { try { if (userID == null) { log(ILogger.LL_FAILURE, CMS.getLogMessage("ADMIN_SRVLT_NULL_RS_ID")); @@ -360,12 +364,9 @@ public class UserService extends PKIService implements UserResource { auditAddUser(userID, userData, ILogger.SUCCESS); // read the data back - userData = getUser(userID); + userData = getUserData(userID); - return Response - .created(userData.getLink().getHref()) - .entity(userData) - .build(); + return createCreatedResponse(userData, userData.getLink().getHref()); } catch (PKIException e) { auditAddUser(userID, userData, ILogger.FAILURE); @@ -439,11 +440,9 @@ public class UserService extends PKIService implements UserResource { auditModifyUser(userID, userData, ILogger.SUCCESS); // read the data back - userData = getUser(userID); + userData = getUserData(userID); - return Response - .ok(userData) - .build(); + return createOKResponse(userData); } catch (PKIException e) { auditModifyUser(userID, userData, ILogger.FAILURE); @@ -530,11 +529,9 @@ public class UserService extends PKIService implements UserResource { auditModifyUser(userID, userData, ILogger.SUCCESS); // read the data back - userData = getUser(userID); + userData = getUserData(userID); - return Response - .ok(userData) - .build(); + return createOKResponse(userData); } catch (PKIException e) { auditModifyUser(userID, userData, ILogger.FAILURE); @@ -563,7 +560,7 @@ public class UserService extends PKIService implements UserResource { * </ul> */ @Override - public void removeUser(String userID) { + public Response removeUser(String userID) { // ensure that any low-level exceptions are reported // to the signed audit log and stored as failures @@ -588,6 +585,8 @@ public class UserService extends PKIService implements UserResource { auditDeleteUser(userID, ILogger.SUCCESS); + return createNoContentResponse(); + } catch (PKIException e) { auditDeleteUser(userID, ILogger.FAILURE); throw e; @@ -626,7 +625,7 @@ public class UserService extends PKIService implements UserResource { * ui/admin-protocol-definition.html#user-admin */ @Override - public UserCertCollection findUserCerts(String userID, Integer start, Integer size) { + public Response findUserCerts(String userID, Integer start, Integer size) { try { start = start == null ? 0 : start; size = size == null ? DEFAULT_SIZE : size; @@ -678,7 +677,7 @@ public class UserService extends PKIService implements UserResource { response.addLink(new Link("next", uri)); } - return response; + return createOKResponse(response); } catch (PKIException e) { throw e; @@ -689,7 +688,11 @@ public class UserService extends PKIService implements UserResource { } @Override - public UserCertData getUserCert(String userID, String certID) { + public Response getUserCert(String userID, String certID) { + return createOKResponse(getUserCertData(userID, certID)); + } + + public UserCertData getUserCertData(String userID, String certID) { if (certID == null) throw new BadRequestException("Certificate ID is null."); @@ -786,7 +789,7 @@ public class UserService extends PKIService implements UserResource { // no cert is a success if (encoded == null) { auditAddUserCert(userID, userCertData, ILogger.SUCCESS); - return Response.ok().build(); + return createOKResponse(); } // only one cert added per operation @@ -918,12 +921,9 @@ public class UserService extends PKIService implements UserResource { userCertData.setSubjectDN(cert.getSubjectDN().toString()); String certID = userCertData.getID(); - userCertData = getUserCert(userID, URLEncoder.encode(certID, "UTF-8")); + userCertData = getUserCertData(userID, URLEncoder.encode(certID, "UTF-8")); - return Response - .created(userCertData.getLink().getHref()) - .entity(userCertData) - .build(); + return createCreatedResponse(userCertData, userCertData.getLink().getHref()); } catch (CertificateExpiredException e) { log(ILogger.LL_FAILURE, CMS.getLogMessage("ADMIN_SRVLT_ADD_CERT_EXPIRED", @@ -964,7 +964,7 @@ public class UserService extends PKIService implements UserResource { * </ul> */ @Override - public void removeUserCert(String userID, String certID) { + public Response removeUserCert(String userID, String certID) { if (userID == null) throw new BadRequestException("User ID is null."); if (certID == null) throw new BadRequestException("Certificate ID is null."); @@ -978,6 +978,8 @@ public class UserService extends PKIService implements UserResource { UserCertData userCertData = new UserCertData(); userCertData.setID(certID); removeUserCert(userID, userCertData); + + return createNoContentResponse(); } public void removeUserCert(String userID, UserCertData userCertData) { @@ -1036,7 +1038,7 @@ public class UserService extends PKIService implements UserResource { } @Override - public UserMembershipCollection findUserMemberships(String userID, Integer start, Integer size) { + public Response findUserMemberships(String userID, Integer start, Integer size) { try { start = start == null ? 0 : start; size = size == null ? DEFAULT_SIZE : size; @@ -1081,7 +1083,7 @@ public class UserService extends PKIService implements UserResource { response.addLink(new Link("next", uri)); } - return response; + return createOKResponse(response); } catch (PKIException e) { throw e; @@ -1109,10 +1111,7 @@ public class UserService extends PKIService implements UserResource { UserMembershipData userMembershipData = createUserMembershipData(userID, groupID); - return Response - .created(userMembershipData.getLink().getHref()) - .entity(userMembershipData) - .build(); + return createCreatedResponse(userMembershipData, userMembershipData.getLink().getHref()); } catch (PKIException e) { throw e; @@ -1124,7 +1123,7 @@ public class UserService extends PKIService implements UserResource { } @Override - public void removeUserMembership(String userID, String groupID) { + public Response removeUserMembership(String userID, String groupID) { if (userID == null) throw new BadRequestException("User ID is null."); if (groupID == null) throw new BadRequestException("Group ID is null."); @@ -1134,6 +1133,8 @@ public class UserService extends PKIService implements UserResource { processor.setUriInfo(uriInfo); processor.removeGroupMember(groupID, userID); + return createNoContentResponse(); + } catch (PKIException e) { throw e; diff --git a/base/server/cms/src/com/netscape/cms/servlet/base/PKIService.java b/base/server/cms/src/com/netscape/cms/servlet/base/PKIService.java index 23e540f0e..6550715f5 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/base/PKIService.java +++ b/base/server/cms/src/com/netscape/cms/servlet/base/PKIService.java @@ -18,6 +18,7 @@ package com.netscape.cms.servlet.base; import java.lang.reflect.Method; +import java.net.URI; import java.security.cert.CertificateEncodingException; import java.util.HashMap; import java.util.List; @@ -54,8 +55,29 @@ public class PKIService { public ILogger logger = CMS.getLogger(); public IAuditor auditor = CMS.getAuditor(); - public Response createOKResponse(Object object) { - return Response.ok(object).build(); + public Response createOKResponse() { + return Response + .ok() + .build(); + } + + public Response createOKResponse(Object entity) { + return Response + .ok(entity) + .build(); + } + + public Response createCreatedResponse(Object entity, URI link) { + return Response + .created(link) + .entity(entity) + .build(); + } + + public Response createNoContentResponse() { + return Response + .noContent() + .build(); } public Response sendConditionalGetResponse(int ctime, Object object, Request request) { |