我们有一个Cordova APP,它调用具有自定义安全性的API。现在通过MFP上传和下载Cordova中的资源
,我们迁移到IBM MFP 8.0
我跟着https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/8.0/authentication-and-security/protecting-external-resources/提供的步骤来保护外部资源和https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/8.0/application-development/resource-request/javascript/通过科尔多瓦打电话。
应用程序使用该插件2个事科尔多瓦 - 插件 - 文件传输:
- 从受保护的REST端点下载的图像文件系统和在HTML中使用(例如,用户的个人资料照片)
- 上传图像到受保护的REST端点(例如,上传从画廊用户个人资料照片)
它的工作,因为插件可以发送自定义页眉。
如何实现与MFP保护端点相同的功能?
更新:
其余的API,它是工作,现在它受到保护由MFP使用机密客户的外部资源。
API使用Spring的多部分上传和产生的byte [] PNG下载:
@RequestMapping(value = PROFILE_UPDATE_USER_PROFILE_PHOTO,
method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
@Override
public ResponseEntity<DataOutput<APIError[], ProfilePhotoOutput>> updateUserProfilePhoto(
MultipartFile file) {
return profileController.updateUserProfilePhoto(file);
}
@RequestMapping(value = PROFILE_GET_USER_PROFILE_PHOTO,
method = RequestMethod.GET, produces = {MediaType.IMAGE_GIF_VALUE, MediaType.IMAGE_JPEG_VALUE, MediaType.IMAGE_PNG_VALUE})
@ResponseBody
@Override
public ResponseEntity<byte[]> getUserProfilePhoto() {
return profileController.getUserProfilePhoto();
}
嗨。我已经在使用保护当前API作为外部资源的方法。更具可维护性和运行时效率的方式。我用当前的Spring API更新了这个问题。您建议在API中使用base64添加新方法,使用某个插件读取/存储图像,然后使用MFP ResourceRequest发送/接收? –
通过使用MFP保护外部资源,您可以直接向您的移动客户展示您的第三方api,如果您认为您不相信您的第三方API在您的应用访问高峰时段做出响应并且想要使用和适配器在它的前面。在这种情况下,您可以使用JavaAdapter并探索Base64(用于JSON)或某些自定义数据类型,并使用HTTP响应代码来指导您的客户端返回什么。例如:200是OK,404没有找到... – Cesar
在这种情况下,我发现适配器(JavaAdapter)可以作为阀门来控制后端压力,因为您可以通过配置发送到第三方API的请求数量adapter.xml定义文件。虽然,这可能会增加一些开销来处理文件,具体取决于您处理的图像/视频的大小。 – Cesar