From c129fb1c41d6736481d839e7b8636f24286f4e15 Mon Sep 17 00:00:00 2001 From: lasanthaDLPDS Date: Wed, 18 Sep 2019 19:32:59 +0530 Subject: [PATCH] Fix image loading issue in tenant mode --- .../mgt/api/services/ArtifactDownloadAPI.java | 7 ++++++- .../mgt/api/services/impl/ArtifactDownloadAPIImpl.java | 5 +++-- .../application/mgt/common/services/AppmDataHandler.java | 2 +- .../application/mgt/core/impl/AppmDataHandlerImpl.java | 8 +++----- .../carbon/device/application/mgt/core/util/APIUtil.java | 9 +++++---- .../io/entgra/ui/request/interceptor/LoginHandler.java | 9 +-------- 6 files changed, 19 insertions(+), 21 deletions(-) diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.api/src/main/java/org/wso2/carbon/device/application/mgt/api/services/ArtifactDownloadAPI.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.api/src/main/java/org/wso2/carbon/device/application/mgt/api/services/ArtifactDownloadAPI.java index 816b96c62b..f6f149ea62 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.api/src/main/java/org/wso2/carbon/device/application/mgt/api/services/ArtifactDownloadAPI.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.api/src/main/java/org/wso2/carbon/device/application/mgt/api/services/ArtifactDownloadAPI.java @@ -57,7 +57,7 @@ import javax.ws.rs.core.Response; public interface ArtifactDownloadAPI { @GET - @Path("/{uuid}/{folderName}/{fileName}") + @Path("/{tenantId}/{uuid}/{folderName}/{fileName}") @Produces(MediaType.APPLICATION_OCTET_STREAM) @ApiOperation( produces = MediaType.APPLICATION_OCTET_STREAM, @@ -81,6 +81,11 @@ public interface ArtifactDownloadAPI { response = ErrorResponse.class) }) Response getArtifact( + @ApiParam( + name = "tenantId", + value = "Tenant Id of the application artifact belongs.", + required = true) + @PathParam("tenantId") int tenantId, @ApiParam( name = "uuid", value = "UUID of the application release.", diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.api/src/main/java/org/wso2/carbon/device/application/mgt/api/services/impl/ArtifactDownloadAPIImpl.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.api/src/main/java/org/wso2/carbon/device/application/mgt/api/services/impl/ArtifactDownloadAPIImpl.java index c603b85161..d442de1b96 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.api/src/main/java/org/wso2/carbon/device/application/mgt/api/services/impl/ArtifactDownloadAPIImpl.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.api/src/main/java/org/wso2/carbon/device/application/mgt/api/services/impl/ArtifactDownloadAPIImpl.java @@ -47,14 +47,15 @@ public class ArtifactDownloadAPIImpl implements ArtifactDownloadAPI { @GET @Override @Produces(MediaType.APPLICATION_OCTET_STREAM) - @Path("/{uuid}/{folderName}/{fileName}") + @Path("/{tenantId}/{uuid}/{folderName}/{fileName}") public Response getArtifact( + @PathParam("tenantId") int tenantId, @PathParam("uuid") String uuid, @PathParam("folderName") String folderName, @PathParam("fileName") String fileName) { AppmDataHandler dataHandler = APIUtil.getDataHandler(); try { - InputStream fileInputStream = dataHandler.getArtifactStream(uuid, folderName, fileName); + InputStream fileInputStream = dataHandler.getArtifactStream(tenantId, uuid, folderName, fileName); Response.ResponseBuilder response = Response .ok(fileInputStream, MediaType.APPLICATION_OCTET_STREAM); response.status(Response.Status.OK); diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.common/src/main/java/org/wso2/carbon/device/application/mgt/common/services/AppmDataHandler.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.common/src/main/java/org/wso2/carbon/device/application/mgt/common/services/AppmDataHandler.java index 7e4cb13a82..7385688db5 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.common/src/main/java/org/wso2/carbon/device/application/mgt/common/services/AppmDataHandler.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.common/src/main/java/org/wso2/carbon/device/application/mgt/common/services/AppmDataHandler.java @@ -35,6 +35,6 @@ public interface AppmDataHandler { Map getLifecycleConfiguration() throws LifecycleManagementException; - InputStream getArtifactStream(String uuid, String folderName, String artifactName) + InputStream getArtifactStream(int tenantId, String uuid, String folderName, String artifactName) throws ApplicationManagementException; } diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/AppmDataHandlerImpl.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/AppmDataHandlerImpl.java index d1a3f056cf..d1c941e045 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/AppmDataHandlerImpl.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/AppmDataHandlerImpl.java @@ -60,9 +60,8 @@ public class AppmDataHandlerImpl implements AppmDataHandler { return lifecycleStateManager.getLifecycleConfig(); } - @Override public InputStream getArtifactStream(String uuid, String folderName, String artifactName) + @Override public InputStream getArtifactStream(int tenantId, String uuid, String folderName, String artifactName) throws ApplicationManagementException { - int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true); ApplicationStorageManager applicationStorageManager = DAOUtil.getApplicationStorageManager(); ApplicationReleaseDAO applicationReleaseDAO = ApplicationManagementDAOFactory.getApplicationReleaseDAO(); String appReleaseHashValue; @@ -83,9 +82,8 @@ public class AppmDataHandlerImpl implements AppmDataHandler { } return inputStream; } catch (ApplicationManagementDAOException e) { - String msg = - "Error occurred when retrieving application release hash value for given application release UUID: " - + uuid; + String msg = "Error occurred when retrieving application release hash value for given application release " + + "UUID: " + uuid; log.error(msg, e); throw new ApplicationManagementException(msg, e); } catch (ApplicationStorageManagementException e) { diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/util/APIUtil.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/util/APIUtil.java index 0829079e66..f3b325caa2 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/util/APIUtil.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/util/APIUtil.java @@ -353,8 +353,7 @@ public class APIUtil { application.setRating(applicationDTO.getAppRating()); List applicationReleases = new ArrayList<>(); for (ApplicationReleaseDTO applicationReleaseDTO : applicationDTO.getApplicationReleaseDTOs()) { - ApplicationRelease applicationRelease = releaseDtoToRelease(applicationReleaseDTO); - applicationReleases.add(applicationRelease); + applicationReleases.add(releaseDtoToRelease(applicationReleaseDTO)); } application.setApplicationReleases(applicationReleases); return application; @@ -362,8 +361,10 @@ public class APIUtil { public static ApplicationRelease releaseDtoToRelease(ApplicationReleaseDTO applicationReleaseDTO) throws ApplicationManagementException { - String basePath = getArtifactDownloadBaseURL() + applicationReleaseDTO.getUuid() - + Constants.FORWARD_SLASH; + int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true); + String basePath = + getArtifactDownloadBaseURL() + tenantId + Constants.FORWARD_SLASH + applicationReleaseDTO.getUuid() + + Constants.FORWARD_SLASH; List screenshotPaths = new ArrayList<>(); ApplicationRelease applicationRelease = new ApplicationRelease(); diff --git a/components/ui-request-interceptor/io.entgra.ui.request.interceptor/src/main/java/io/entgra/ui/request/interceptor/LoginHandler.java b/components/ui-request-interceptor/io.entgra.ui.request.interceptor/src/main/java/io/entgra/ui/request/interceptor/LoginHandler.java index 03cf263bbc..a43c022967 100644 --- a/components/ui-request-interceptor/io.entgra.ui.request.interceptor/src/main/java/io/entgra/ui/request/interceptor/LoginHandler.java +++ b/components/ui-request-interceptor/io.entgra.ui.request.interceptor/src/main/java/io/entgra/ui/request/interceptor/LoginHandler.java @@ -38,8 +38,6 @@ import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; import org.apache.http.protocol.HTTP; import org.wso2.carbon.device.application.mgt.common.ProxyResponse; -import org.wso2.carbon.device.mgt.core.config.DeviceConfigurationManager; -import org.wso2.carbon.device.mgt.core.config.DeviceManagementConfig; import javax.servlet.annotation.MultipartConfig; import javax.servlet.annotation.WebServlet; @@ -66,11 +64,6 @@ public class LoginHandler extends HttpServlet { protected void doPost(HttpServletRequest req, HttpServletResponse resp) { try { validateLoginRequest(req, resp); - DeviceManagementConfig deviceManagementConfig = DeviceConfigurationManager.getInstance() - .getDeviceManagementConfig(); - String adminUsername = deviceManagementConfig.getIdentityConfigurations().getAdminUsername(); - String adminPwd = deviceManagementConfig.getIdentityConfigurations().getAdminPassword(); - HttpSession httpSession = req.getSession(false); if (httpSession != null) { httpSession.invalidate(); @@ -120,7 +113,7 @@ public class LoginHandler extends HttpServlet { // default login HttpPost apiRegEndpoint = new HttpPost(serverUrl + HandlerConstants.APP_REG_ENDPOINT); apiRegEndpoint.setHeader(HttpHeaders.AUTHORIZATION, HandlerConstants.BASIC + Base64.getEncoder() - .encodeToString((adminUsername + HandlerConstants.COLON + adminPwd).getBytes())); + .encodeToString((username + HandlerConstants.COLON + password).getBytes())); apiRegEndpoint.setHeader(HTTP.CONTENT_TYPE, ContentType.APPLICATION_JSON.toString()); apiRegEndpoint.setEntity(constructAppRegPayload(tags));