美文网首页
第三方接口绕过签名

第三方接口绕过签名

作者: kany1 | 来源:发表于2018-10-28 18:25 被阅读0次

    /**

    * 删除

    * @param fileId

    */

    @Transactional(rollbackFor = AppRuntimeException.class)

    @Override

    public void del(String fileId,long userId)throws IOException {

    Integer user_Id=new Long(userId).intValue();

    int row=LiveTapeFileDao.del(fileId,  user_Id);

    if(row !=1){

    throw  new AppRuntimeException("删除失败"+fileId);

    }

    String url="v2/index.php";

    final ObjectMapper mapper =new ObjectMapper();

    String resp =null;

    try {

    resp = executePost(url ,fileId);

    }catch (Exception e) {

    e.printStackTrace();

    }

    logger.info("resp************={}",resp);

    LiveTapeFileCodeVO liveTapeFileCodeVO = mapper.readValue(resp, LiveTapeFileCodeVO.class);

    if(liveTapeFileCodeVO.getCode() !=0){

    throw  new AppRuntimeException("腾讯云录播文件删除失败");

    }

    logger.info("liveTapeFileCodeVO************={}",liveTapeFileCodeVO);

    }

    private String executePost(String apiUrl ,String fileId)throws Exception {

    logger.debug("api url = {}", apiUrl);

    logger.debug("fileId  = {}", fileId);

    String Action="DeleteVodFile";

    String Region="gz";

    String Timestamp =Long.toString(new Date().getTime());

    int temp=0;

    int[] arr =new int[10];

    for(int i=0; i<10; i++){

    arr[i] = i +1;

    }

    Random random =new Random();

    int size = arr.length;

    for(int k=0; k

    int index =0;

    if((size -1)-k !=0){

    index = random.nextInt((size -1)-k);

    }

    temp=arr[index];

    arr[index] = arr[size - (k +1)];

    arr[size - (k +1)] = temp;

    }

    Integer Nonce=temp;

    String SecretId="xxxxxxx";

    String Signature="mysignature";

    JSONObject JSONObject=new JSONObject();

    JSONObject.put("Action",Action);

    JSONObject.put("Region",Region);

    JSONObject.put("Timestamp",Timestamp);

    JSONObject.put("Nonce",Nonce);

    JSONObject.put("SecretId",SecretId);

    JSONObject.put("Signature",Signature);

    logger.info("组件的json"+JSONObject.toString());

    try {

    final ResponseEntity responseEntity = getRestTemplateBypassingHostNameVerifcation().postForEntity(buildUri(apiUrl,fileId,JSONObject),"{}", String.class);

    logger.debug("HTTP status code = {}", responseEntity.getStatusCode());

    if (!responseEntity.getStatusCode().is2xxSuccessful()) {

    throw new Exception("HTTP请求失败!");

    }

    return responseEntity.getBody();

    }catch (RestClientException e) {

    throw new Exception("RestClientException: " + e.getMessage());

    }catch (URISyntaxException e) {

    throw new Exception("组装请求URL失败!请求未发出");

    }

    }

    public RestTemplate getRestTemplateBypassingHostNameVerifcation() {

    CloseableHttpClient httpClient = HttpClients.custom().setSSLHostnameVerifier(new NoopHostnameVerifier()).build();

    HttpComponentsClientHttpRequestFactory requestFactory =new HttpComponentsClientHttpRequestFactory();

    requestFactory.setHttpClient(httpClient);

    return new RestTemplate(requestFactory);

    }

    private URI buildUri(final String apiUrl, String fileId, JSONObject JSONObject)throws URISyntaxException {

    return new URIBuilder()

    .setScheme("https")

    .setHost("vod.api.qcloud.com")

    .setPath(apiUrl)

    .setParameter("Action","DeleteVodFile")

    .setParameter("fileId",fileId)

    .setParameter("priority","0")

    .setParameter("COMMON_PARAMS",JSONObject.toString())

    .build();

    }

    相关文章

      网友评论

          本文标题:第三方接口绕过签名

          本文链接:https://www.haomeiwen.com/subject/lolmtqtx.html