Browse Source

微调后门外部调用方法

dev_shibei_match
jianjun 5 years ago
parent
commit
a94a22dc48
  1. 20
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/backdoor/BackDoorController.java
  2. 4
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/backdoor/BackDoorService.java
  3. 20
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/backdoor/impl/BackDoorServiceImpl.java

20
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/backdoor/BackDoorController.java

@ -1,6 +1,5 @@
package com.epmet.datareport.controller.backdoor;
import com.epmet.commons.tools.utils.Result;
import com.epmet.datareport.service.backdoor.BackDoorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -16,9 +15,22 @@ public class BackDoorController {
@Autowired
private BackDoorService backDoorService;
@PostMapping("backdoor")
public Object backDoor(@RequestHeader("Data-Type")String dataType, @RequestHeader("AppId")String appId, @RequestHeader("target")String target, @RequestBody(required = false) Object o){
return backDoorService.backDoor(dataType,appId,target,o);
/**
* desc: 重定向到target 方法适用于外部鉴权接口的查询 比如大屏的查询接口
*
* @param dataType
* @param appId
* @param target
* @param targetParam
* @return java.lang.String
* @author LiuJanJun
* @date 2020/10/23 1:44 下午
*/
@PostMapping("redirect/external")
public String backDoor(@RequestHeader(value = "Data-Type", defaultValue = "real", required = false) String dataType,
@RequestHeader("AppId") String appId, @RequestHeader("target") String target,
@RequestBody(required = false) String targetParam) {
return backDoorService.redirect(dataType, appId, target, targetParam);
}
}

4
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/backdoor/BackDoorService.java

@ -1,13 +1,11 @@
package com.epmet.datareport.service.backdoor;
import com.epmet.commons.tools.utils.Result;
/**
* @Author zxc
* @DateTime 2020/10/21 5:17 下午
*/
public interface BackDoorService {
Object backDoor(String dataType, String appId, String target, Object o);
String redirect(String dataType, String appId, String target, String o);
}

20
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/backdoor/impl/BackDoorServiceImpl.java

@ -1,11 +1,10 @@
package com.epmet.datareport.service.backdoor.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result;
import com.epmet.datareport.constant.*;
import com.epmet.datareport.constant.FactConstant;
import com.epmet.datareport.service.backdoor.BackDoorService;
import com.epmet.dto.result.AppIdInfoResultDTO;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
@ -28,24 +27,23 @@ public class BackDoorServiceImpl implements BackDoorService {
private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient;
@Override
public Object backDoor(String dataType, String appId, String target, Object o) {
public String redirect(String dataType, String appId, String target, String targetParam) {
Result<AppIdInfoResultDTO> appIdInfoResultDTOResult = commonServiceOpenFeignClient.appIdInfo(appId);
if (!appIdInfoResultDTOResult.success()){
if (!appIdInfoResultDTOResult.success()) {
throw new RenException("获取accessToken失败......");
}
AppIdInfoResultDTO data = appIdInfoResultDTOResult.getData();
String url = FactConstant.URL.concat(target);
Map<String,String> headerMap = new HashMap<>(16);
headerMap.put("AccessToken",data.getAccessToken());
headerMap.put("AppId",data.getAppId());
headerMap.put("AuthType","jwt");
Map<String, String> headerMap = new HashMap<>(16);
headerMap.put("AccessToken", data.getAccessToken());
headerMap.put("AppId", data.getAppId());
headerMap.put("AuthType", "jwt");
headerMap.put("Data-Type",dataType);
Result<String> stringResult = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, JSON.toJSONString(o),headerMap);
Result<String> stringResult = HttpClientManager.getInstance().sendPostByJSONAndHeader(url, targetParam, headerMap);
log.info(JSON.toJSONString(stringResult));
if (!stringResult.success()){
throw new RenException("请求【"+url+"】失败......"+stringResult.error());
}
JSONObject jsonObject = JSON.parseObject(stringResult.getData());
return jsonObject;
return stringResult.getData();
}
}

Loading…
Cancel
Save