diff --git a/cadc-access-control/src/main/java/ca/nrc/cadc/ac/client/GMSClient.java b/cadc-access-control/src/main/java/ca/nrc/cadc/ac/client/GMSClient.java index 89d5b8839b16e95b44c554fc2ed945e8a4a35b03..2242640d78d43324336ecc9a54ce1f86534a80c6 100755 --- a/cadc-access-control/src/main/java/ca/nrc/cadc/ac/client/GMSClient.java +++ b/cadc-access-control/src/main/java/ca/nrc/cadc/ac/client/GMSClient.java @@ -629,46 +629,30 @@ public class GMSClient implements TransferListener // reset the state of the cache clearCache(); - HttpURLConnection conn = - (HttpURLConnection) removeGroupMemberURL.openConnection(); - conn.setRequestMethod("DELETE"); - - SSLSocketFactory sf = getSSLSocketFactory(); - if ((sf != null) && ((conn instanceof HttpsURLConnection))) - { - ((HttpsURLConnection) conn) - .setSSLSocketFactory(getSSLSocketFactory()); - } - - // Try to handle anonymous access and throw AccessControlException - int responseCode = -1; - try - { - responseCode = conn.getResponseCode(); - } - catch (Exception ignore) {} + HttpDelete delete = new HttpDelete(removeGroupMemberURL, true); + delete.setSSLSocketFactory(getSSLSocketFactory()); + delete.run(); - if (responseCode != 200) + Throwable error = delete.getThrowable(); + if (error != null) { - String errMessage = NetUtil.getErrorBody(conn); - log.debug("removeGroupMember response " + responseCode + ": " + - errMessage); - - if ((responseCode == -1) || - (responseCode == 401) || - (responseCode == 403)) + // transfer returns a -1 code for anonymous access. + if ((delete.getResponseCode() == -1) || + (delete.getResponseCode() == 401) || + (delete.getResponseCode() == 403)) { - throw new AccessControlException(errMessage); + throw new AccessControlException(error.getMessage()); } - if (responseCode == 400) + if (delete.getResponseCode() == 400) { - throw new IllegalArgumentException(errMessage); + throw new IllegalArgumentException(error.getMessage()); } - if (responseCode == 404) + if (delete.getResponseCode() == 404) { - throw new GroupNotFoundException(errMessage); + throw new GroupNotFoundException(error.getMessage()); } - throw new IOException(errMessage); + + throw new IOException(error); } } @@ -698,49 +682,34 @@ public class GMSClient implements TransferListener // reset the state of the cache clearCache(); - HttpURLConnection conn = - (HttpURLConnection) removeUserMemberURL.openConnection(); - conn.setRequestMethod("DELETE"); - - SSLSocketFactory sf = getSSLSocketFactory(); - if ((sf != null) && ((conn instanceof HttpsURLConnection))) - { - ((HttpsURLConnection) conn) - .setSSLSocketFactory(getSSLSocketFactory()); - } - - // Try to handle anonymous access and throw AccessControlException - int responseCode = -1; - try - { - responseCode = conn.getResponseCode(); - } - catch (Exception ignore) {} + HttpDelete delete = new HttpDelete(removeUserMemberURL, true); + delete.setSSLSocketFactory(getSSLSocketFactory()); + delete.run(); - if (responseCode != 200) + Throwable error = delete.getThrowable(); + if (error != null) { - String errMessage = NetUtil.getErrorBody(conn); - log.debug("removeUserMember response " + responseCode + ": " + - errMessage); - - if ((responseCode == -1) || - (responseCode == 401) || - (responseCode == 403)) + // transfer returns a -1 code for anonymous access. + if ((delete.getResponseCode() == -1) || + (delete.getResponseCode() == 401) || + (delete.getResponseCode() == 403)) { - throw new AccessControlException(errMessage); + throw new AccessControlException(error.getMessage()); } - if (responseCode == 400) + if (delete.getResponseCode() == 400) { - throw new IllegalArgumentException(errMessage); + throw new IllegalArgumentException(error.getMessage()); } - if (responseCode == 404) + if (delete.getResponseCode() == 404) { + String errMessage = error.getMessage(); if (errMessage != null && errMessage.toLowerCase().contains("user")) throw new UserNotFoundException(errMessage); else throw new GroupNotFoundException(errMessage); } - throw new IOException(errMessage); + + throw new IOException(error); } }