From c620a0640a7b29957ce18d4ccc2076e5c1405cd5 Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Wed, 11 Mar 2015 16:30:20 +0530 Subject: [PATCH] api: avoid sending sensitive data in api response - UI: use post when updating user - S3: don't send s3 key in the response - VPN: don't send preshared key in remoteaccessvpn api response - Snapshot response should set zone id not volume's device id Signed-off-by: Rohit Yadav (cherry picked from commit 02cadc3fb3fae7f5e8c87b7fafb977fb5eeae6eb) Signed-off-by: Rohit Yadav Conflicts: server/src/com/cloud/api/ApiResponseHelper.java --- .../cloudstack/api/response/RemoteAccessVpnResponse.java | 8 -------- server/src/com/cloud/api/ApiResponseHelper.java | 1 - .../com/cloud/api/query/dao/ImageStoreJoinDaoImpl.java | 6 ++++-- ui/scripts/installWizard.js | 1 + 4 files changed, 5 insertions(+), 11 deletions(-) diff --git a/api/src/org/apache/cloudstack/api/response/RemoteAccessVpnResponse.java b/api/src/org/apache/cloudstack/api/response/RemoteAccessVpnResponse.java index 28d788b427b..60a45b61723 100644 --- a/api/src/org/apache/cloudstack/api/response/RemoteAccessVpnResponse.java +++ b/api/src/org/apache/cloudstack/api/response/RemoteAccessVpnResponse.java @@ -41,10 +41,6 @@ public class RemoteAccessVpnResponse extends BaseResponse implements ControlledE @Param(description = "the range of ips to allocate to the clients") private String ipRange; - @SerializedName("presharedkey") - @Param(description = "the ipsec preshared key") - private String presharedKey; - @SerializedName(ApiConstants.ACCOUNT) @Param(description = "the account of the remote access vpn") private String accountName; @@ -85,10 +81,6 @@ public class RemoteAccessVpnResponse extends BaseResponse implements ControlledE this.ipRange = ipRange; } - public void setPresharedKey(String presharedKey) { - this.presharedKey = presharedKey; - } - @Override public void setAccountName(String accountName) { this.accountName = accountName; diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index df4cca8639e..3d174c71eb1 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -1284,7 +1284,6 @@ public class ApiResponseHelper implements ResponseGenerator { vpnResponse.setPublicIp(ip.getAddress().addr()); } vpnResponse.setIpRange(vpn.getIpRange()); - vpnResponse.setPresharedKey(vpn.getIpsecPresharedKey()); populateOwner(vpnResponse, vpn); vpnResponse.setState(vpn.getState().toString()); vpnResponse.setId(vpn.getUuid()); diff --git a/server/src/com/cloud/api/query/dao/ImageStoreJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/ImageStoreJoinDaoImpl.java index f1f873c43b4..6e9c1483e8b 100644 --- a/server/src/com/cloud/api/query/dao/ImageStoreJoinDaoImpl.java +++ b/server/src/com/cloud/api/query/dao/ImageStoreJoinDaoImpl.java @@ -84,7 +84,8 @@ public class ImageStoreJoinDaoImpl extends GenericDaoBase 0 && !detailName.equals(ApiConstants.PASSWORD)) { String detailValue = ids.getDetailValue(); if (detailName.equals(ApiConstants.KEY) || detailName.equals(ApiConstants.S3_SECRET_KEY)) { - detailValue = DBEncryptionUtil.decrypt(detailValue); + // ALWAYS return an empty value for the S3 secret key since that key is managed by Amazon and not CloudStack + detailValue = ""; } ImageStoreDetailResponse osdResponse = new ImageStoreDetailResponse(detailName, detailValue); osResponse.addDetail(osdResponse); @@ -99,7 +100,8 @@ public class ImageStoreJoinDaoImpl extends GenericDaoBase 0 && !detailName.equals(ApiConstants.PASSWORD)) { String detailValue = ids.getDetailValue(); if (detailName.equals(ApiConstants.KEY) || detailName.equals(ApiConstants.S3_SECRET_KEY)) { - detailValue = DBEncryptionUtil.decrypt(detailValue); + // ALWAYS return an empty value for the S3 secret key since that key is managed by Amazon and not CloudStack + detailValue = ""; } ImageStoreDetailResponse osdResponse = new ImageStoreDetailResponse(detailName, detailValue); response.addDetail(osdResponse); diff --git a/ui/scripts/installWizard.js b/ui/scripts/installWizard.js index 85eaff00c3f..bf9450a9e3f 100644 --- a/ui/scripts/installWizard.js +++ b/ui/scripts/installWizard.js @@ -37,6 +37,7 @@ id: cloudStack.context.users[0].userid, password: md5Hashed ? $.md5(args.data.password) : todb(args.data.password) }, + type: 'POST', dataType: 'json', async: true, success: function(data) {