From ce2efa21c2a385fd90ec73f52b0165642fde006a Mon Sep 17 00:00:00 2001 From: tuwenlin Date: Mon, 1 Aug 2022 11:09:45 +0800 Subject: [PATCH] securityToken --- .../serverless/middle/handler/NettyHttpHandler.java | 5 +++-- .../serverless/middle/manager/ConnectionManager.java | 4 ++-- .../java/com/serverless/middle/oss/OSSManager.java | 11 +++++++++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/middle-server/src/main/java/com/serverless/middle/handler/NettyHttpHandler.java b/src/middle-server/src/main/java/com/serverless/middle/handler/NettyHttpHandler.java index 2075ab9..d89741f 100644 --- a/src/middle-server/src/main/java/com/serverless/middle/handler/NettyHttpHandler.java +++ b/src/middle-server/src/main/java/com/serverless/middle/handler/NettyHttpHandler.java @@ -90,13 +90,14 @@ private void handleHttpRequest(FullHttpRequest request, Channel channel) throws String workspace = HttpUtils.parseRequestParams(request.uri()).get(WORKSPACE_KEY); String accessKeyId = request.headers().get("X-Fc-Access-Key-Id"); String keySecret = request.headers().get("X-Fc-Access-Key-Secret"); + String securityToken = request.headers().get("X-Fc-Security-Token"); String endpoint = HttpUtils.buildOSSEndpoint(request.headers().get("X-Fc-Region")); if (StringUtil.isNullOrEmpty(workspace)) { workspace = UUID.randomUUID().toString(); - connectionManager.initIdea(workspace, accessKeyId, keySecret, endpoint); + connectionManager.initIdea(workspace, accessKeyId, keySecret, securityToken, endpoint); doRedirect(workspace, channel); } else { - connectionManager.initIdea(workspace, accessKeyId, keySecret, endpoint); + connectionManager.initIdea(workspace, accessKeyId, keySecret, securityToken, endpoint); transportRequest(request, channel); } } else { diff --git a/src/middle-server/src/main/java/com/serverless/middle/manager/ConnectionManager.java b/src/middle-server/src/main/java/com/serverless/middle/manager/ConnectionManager.java index 119c71e..d7e3d95 100644 --- a/src/middle-server/src/main/java/com/serverless/middle/manager/ConnectionManager.java +++ b/src/middle-server/src/main/java/com/serverless/middle/manager/ConnectionManager.java @@ -94,9 +94,9 @@ public void setUnConnectioned(Channel channel) { } } - public void initIdea(String workspace, String accessKeyId, String secretKey, String endPoint) { + public void initIdea(String workspace, String accessKeyId, String secretKey, String securityToken, String endPoint) { OSSManager ossManager = WORKSPACE_OSS_MAP.computeIfAbsent(workspace, - (k) -> new OSSManager(endPoint, accessKeyId, secretKey, workspace)); + (k) -> new OSSManager(endPoint, accessKeyId, secretKey, workspace, securityToken)); ossManager.batchDownload(IDEA_PROJECT_PATCH, IDEA_PROJECT_PATCH); ossManager.batchDownload(IDEA_CONFIG_PATCH, IDEA_CONFIG_PATCH); } diff --git a/src/middle-server/src/main/java/com/serverless/middle/oss/OSSManager.java b/src/middle-server/src/main/java/com/serverless/middle/oss/OSSManager.java index 8fc172e..4aea86a 100644 --- a/src/middle-server/src/main/java/com/serverless/middle/oss/OSSManager.java +++ b/src/middle-server/src/main/java/com/serverless/middle/oss/OSSManager.java @@ -22,21 +22,28 @@ public class OSSManager { private String accessKeySecret; + private String securityToken; + private String workspace; private String bucketName = "twl-serverless"; private static OSSClientBuilder ossClientBuilder = new OSSClientBuilder(); - public OSSManager(String endpoint, String accessKeyId, String accessKeySecret, String workspace) { + public OSSManager(String endpoint, String accessKeyId, String accessKeySecret, String workspace, String securityToken) { this.endpoint = endpoint; this.accessKeyId = accessKeyId; this.accessKeySecret = accessKeySecret; + this.securityToken = securityToken; this.workspace = workspace; } + public OSSManager(String endpoint, String accessKeyId, String accessKeySecret, String workspace) { + this(endpoint, accessKeyId, accessKeySecret, workspace, null); + } + public void batchUploadFile(File parentFile) { - OSS ossClient = ossClientBuilder.build(endpoint, accessKeyId, accessKeySecret); + OSS ossClient = ossClientBuilder.build(endpoint, accessKeyId, accessKeySecret, securityToken); try { if (parentFile.isDirectory()) { File[] files = parentFile.listFiles();