临时授权返回的http更换成https

This commit is contained in:
xudawei 2024-04-08 15:40:34 +08:00
parent 462bb5540c
commit 1777b3dbd6
3 changed files with 46 additions and 7 deletions

View File

@ -0,0 +1,37 @@
package cn.axzo.oss.common.utils;
import org.apache.commons.lang3.StringUtils;
/**
* @Author xudawei
* @Date 2024/4/8
* @Description url处理
**/
public class UrlUtil {
public static String HTTP = "http:";
public static String HTTPS = "https:";
/**
* http的url替换成https
*/
public static String httpToHttps(String str) {
if (StringUtils.isBlank(str)) {
return str;
}
if (str.startsWith(HTTP)) {
return HTTPS + str.substring(str.indexOf(HTTP) + HTTP.length());
}
return str;
}
public static void main(String[] args) {
String str = "http://axzo-test.oss-cn-chengdu.aliyuncs.com/reportCenter/reportCenter_test";
String str1 = "https://baidu.com";
System.out.println(httpToHttps(str));
System.out.println(httpToHttps(str1));
}
}

View File

@ -7,6 +7,7 @@ import cn.axzo.oss.common.enums.FileUploadTypeEnum;
import cn.axzo.oss.common.enums.StorageUnitEnum;
import cn.axzo.oss.common.exception.BizException;
import cn.axzo.oss.common.utils.BeanConvertUtil;
import cn.axzo.oss.common.utils.UrlUtil;
import cn.axzo.oss.integration.s3.AliOssService;
import cn.axzo.oss.integration.s3.HuaWeiCloudService;
import cn.axzo.oss.manager.api.FileManager;
@ -171,17 +172,17 @@ public class FileManagerImpl implements FileManager {
TemporarySignatureResponse response = huaWeiCloudService.uploadSignUrl(bucketName, key, expireSecond, contentType);
return SignUrlUploadVo.builder()
.signUrl(response.getSignedUrl())
.signUrl(UrlUtil.httpToHttps(response.getSignedUrl()))
.host(response.getActualSignedRequestHeaders().get(HUAWEI_CLOUD_SIGNURL_UPLOAD_HOST_KEY))
.contentType(response.getActualSignedRequestHeaders().get(HUAWEI_CLOUD_SIGNURL_UPLOAD_CONTENT_TYPE_KEY))
.channelCode(channelCode)
.downloadSignUrl(this.downloadHuaweiSignUrl(bucketName, key, expireSecond, bucketType, fileName))
.downloadSignUrl(UrlUtil.httpToHttps(this.downloadHuaweiSignUrl(bucketName, key, expireSecond, bucketType, fileName)))
.build();
case OSS:// 阿里云
return SignUrlUploadVo.builder()
.signUrl(aliOssService.uploadSignUrl(bucketName, key, fileName,expireSecond))
.signUrl(UrlUtil.httpToHttps(aliOssService.uploadSignUrl(bucketName, key, fileName,expireSecond)))
.channelCode(channelCode)
.downloadSignUrl(this.downloadAliyunSignUrl(bucketName, key, expireSecond, bucketType, fileName))
.downloadSignUrl(UrlUtil.httpToHttps(this.downloadAliyunSignUrl(bucketName, key, expireSecond, bucketType, fileName)))
.build();
default:
BizException.error(CodeEnum.CHANNEL_TYPE_NOT_EXIST);

View File

@ -15,6 +15,7 @@ import cn.axzo.oss.common.enums.FileStatusEnum;
import cn.axzo.oss.common.enums.FileUploadTypeEnum;
import cn.axzo.oss.common.exception.BizException;
import cn.axzo.oss.common.utils.JsonUtil;
import cn.axzo.oss.common.utils.UrlUtil;
import cn.axzo.oss.common.utils.Utility;
import cn.axzo.oss.dal.entity.AppChannelBucket;
import cn.axzo.oss.dal.entity.File;
@ -857,7 +858,7 @@ public class FileServiceImpl implements FileService {
case PRIVATE_BUCKET:
String signUrl = this.fileManager.signUrlDownload(item.getBucketName(), tgtFileKey, Objects.nonNull(expire) ? expire : SIGN_URL_DOWNLOAD_EXPIRE_SECOND , item.getChannelCode(), item.getFileName());
return SignUrlDownloadResponse.builder()
.signUrl(signUrl)
.signUrl(UrlUtil.httpToHttps(signUrl))
.fileKey(item.getFileUuid())
.build();
default:
@ -945,12 +946,12 @@ public class FileServiceImpl implements FileService {
this.saveOssFile(fileUploadConfig, dto.getFileName(), fileFormat, uuid,
signUrlUpload.getDownloadSignUrl(), Utility.getMd5(signUrlUpload.getDownloadSignUrl()), expiration);
return SignUrlUploadResponse.builder()
.signUrl(signUrlUpload.getSignUrl())
.signUrl(UrlUtil.httpToHttps(signUrlUpload.getSignUrl()))
.fileKey(uuid)
.contentType(signUrlUpload.getContentType())
.host(signUrlUpload.getHost())
.channelCode(signUrlUpload.getChannelCode())
.downloadSignUrl(signUrlUpload.getDownloadSignUrl())
.downloadSignUrl(UrlUtil.httpToHttps(signUrlUpload.getDownloadSignUrl()))
.build();
}