use of com.qcloud.Module.Sts in project roof-im by madfroglx.
the class OCSTest method testKey.
@Test
public void testKey() {
/* 如果是循环调用下面举例的接口,需要从此处开始你的循环语句。切记! */
TreeMap<String, Object> config = new TreeMap<String, Object>();
config.put("SecretId", "AKIDSpCPQFhNfmmcJ0Q0FKE7pNjuuiKlN73o");
config.put("SecretKey", "kKjOsEPOCoFUlwviLm27IJ9nFWcaNyOc");
/* 请求方法类型 POST、GET */
config.put("RequestMethod", "GET");
/* 区域参数,可选: gz: 广州; sh: 上海; hk: 香港; ca: 北美; 等。 */
config.put("DefaultRegion", "sh");
QcloudApiModuleCenter module = new QcloudApiModuleCenter(new Sts(), config);
TreeMap<String, Object> params = new TreeMap<String, Object>();
/* 将需要输入的参数都放入 params 里面,必选参数是必填的。 */
/* DescribeInstances 接口的部分可选参数如下 */
params.put("name", "test");
// String policy = "{\"statement\": [{\"action\": [\"name/cos:GetObject\",\"name/cos:PutObject\"],\"effect\": \"allow\",\"resource\":[\"qcs::cos:ap-beijing:uid/1255710173:prefix//1255710173/im/*\"]}],\"version\": \"2.0\"}";
String policy = "{\"statement\": [{\"action\": [\"name/cos:GetObject\",\"name/cos:PutObject\"],\"effect\": \"allow\",\"resource\":[\"qcs::cos:ap-shanghai:uid/1255710173:prefix//1255710173/im/*\"]}],\"version\": \"2.0\"}";
params.put("policy", policy);
/* 在这里指定所要用的签名算法,不指定默认为 HmacSHA1*/
// params.put("SignatureMethod", "HmacSHA256");
/* generateUrl 方法生成请求串, 可用于调试使用 */
System.out.println(module.generateUrl("GetFederationToken", params));
String result = null;
try {
/* call 方法正式向指定的接口名发送请求,并把请求参数 params 传入,返回即是接口的请求结果。 */
result = module.call("GetFederationToken", params);
System.out.println(result);
} catch (Exception e) {
System.out.println("error..." + e.getMessage());
}
}
use of com.qcloud.Module.Sts in project roof-im by madfroglx.
the class GetTmpSecretHandlerNode method doNode.
public NodeResult doNode(GetTmpSecretRequest request, ValueStack valueStack) {
TreeMap<String, Object> config = new TreeMap<>();
config.put("SecretId", secretId);
config.put("SecretKey", secretKey);
/* 请求方法类型 POST、GET */
config.put("RequestMethod", "GET");
/* 区域参数,可选: gz: 广州; sh: 上海; hk: 香港; ca: 北美; 等。 */
config.put("DefaultRegion", "sh");
QcloudApiModuleCenter module = new QcloudApiModuleCenter(new Sts(), config);
TreeMap<String, Object> params = new TreeMap<>();
/* 将需要输入的参数都放入 params 里面,必选参数是必填的。 */
/* DescribeInstances 接口的部分可选参数如下 */
params.put("name", request.getUsername());
String policy = "{\"statement\": [{\"action\": [\"name/cos:GetObject\",\"name/cos:PutObject\"]," + "\"effect\": \"allow\"," + "\"resource\":[\"qcs::cos:" + region + ":uid/" + appId + ":prefix//" + appId + "/im/*\"]}]" + ",\"version\": \"2.0\"}";
params.put("policy", policy);
params.put("durationSeconds", durationSeconds);
/* 在这里指定所要用的签名算法,不指定默认为 HmacSHA1*/
// params.put("SignatureMethod", "HmacSHA256");
/* generateUrl 方法生成请求串, 可用于调试使用 */
String result = null;
try {
NodeResult nodeResult = new NodeResult(GET_TMP_SECRET_SUCCESS);
/* call 方法正式向指定的接口名发送请求,并把请求参数 params 传入,返回即是接口的请求结果。 */
result = module.call(GET_FEDERATION_TOKEN, params);
JSONObject jsonObject = JSONObject.parseObject(result);
if (jsonObject.getInteger("code") != 0) {
LOGGER.error(result);
return new NodeResult(GET_TMP_SECRET_ERROR);
}
JSONObject data = jsonObject.getJSONObject("data");
data.put("region", region);
data.put("bucket", bucket + "-" + appId);
data.put("path", pathPrefix + "/" + DateFormatUtils.format(new Date(), "yyyyMM") + "/");
nodeResult.setData(data);
return nodeResult;
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
return new NodeResult(GET_TMP_SECRET_ERROR);
}
}
Aggregations