Fix image loading issue in tenant mode

feature/appm-store/pbac
lasanthaDLPDS 5 years ago
parent 73ec7dd173
commit c129fb1c41

@ -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.",

@ -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);

@ -35,6 +35,6 @@ public interface AppmDataHandler {
Map<String, LifecycleState> getLifecycleConfiguration() throws LifecycleManagementException;
InputStream getArtifactStream(String uuid, String folderName, String artifactName)
InputStream getArtifactStream(int tenantId, String uuid, String folderName, String artifactName)
throws ApplicationManagementException;
}

@ -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) {

@ -353,8 +353,7 @@ public class APIUtil {
application.setRating(applicationDTO.getAppRating());
List<ApplicationRelease> 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,7 +361,9 @@ public class APIUtil {
public static ApplicationRelease releaseDtoToRelease(ApplicationReleaseDTO applicationReleaseDTO)
throws ApplicationManagementException {
String basePath = getArtifactDownloadBaseURL() + applicationReleaseDTO.getUuid()
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true);
String basePath =
getArtifactDownloadBaseURL() + tenantId + Constants.FORWARD_SLASH + applicationReleaseDTO.getUuid()
+ Constants.FORWARD_SLASH;
List<String> screenshotPaths = new ArrayList<>();

@ -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));

Loading…
Cancel
Save