Browse Source

微调后门外部调用方法

master
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; package com.epmet.datareport.controller.backdoor;
import com.epmet.commons.tools.utils.Result;
import com.epmet.datareport.service.backdoor.BackDoorService; import com.epmet.datareport.service.backdoor.BackDoorService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -16,9 +15,22 @@ public class BackDoorController {
@Autowired @Autowired
private BackDoorService backDoorService; 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){ * desc: 重定向到target 方法适用于外部鉴权接口的查询 比如大屏的查询接口
return backDoorService.backDoor(dataType,appId,target,o); *
* @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; package com.epmet.datareport.service.backdoor;
import com.epmet.commons.tools.utils.Result;
/** /**
* @Author zxc * @Author zxc
* @DateTime 2020/10/21 5:17 下午 * @DateTime 2020/10/21 5:17 下午
*/ */
public interface BackDoorService { 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; package com.epmet.datareport.service.backdoor.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.HttpClientManager; import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result; 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.datareport.service.backdoor.BackDoorService;
import com.epmet.dto.result.AppIdInfoResultDTO; import com.epmet.dto.result.AppIdInfoResultDTO;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
@ -28,24 +27,23 @@ public class BackDoorServiceImpl implements BackDoorService {
private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient; private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient;
@Override @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); Result<AppIdInfoResultDTO> appIdInfoResultDTOResult = commonServiceOpenFeignClient.appIdInfo(appId);
if (!appIdInfoResultDTOResult.success()){ if (!appIdInfoResultDTOResult.success()) {
throw new RenException("获取accessToken失败......"); throw new RenException("获取accessToken失败......");
} }
AppIdInfoResultDTO data = appIdInfoResultDTOResult.getData(); AppIdInfoResultDTO data = appIdInfoResultDTOResult.getData();
String url = FactConstant.URL.concat(target); String url = FactConstant.URL.concat(target);
Map<String,String> headerMap = new HashMap<>(16); Map<String, String> headerMap = new HashMap<>(16);
headerMap.put("AccessToken",data.getAccessToken()); headerMap.put("AccessToken", data.getAccessToken());
headerMap.put("AppId",data.getAppId()); headerMap.put("AppId", data.getAppId());
headerMap.put("AuthType","jwt"); headerMap.put("AuthType", "jwt");
headerMap.put("Data-Type",dataType); 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)); log.info(JSON.toJSONString(stringResult));
if (!stringResult.success()){ if (!stringResult.success()){
throw new RenException("请求【"+url+"】失败......"+stringResult.error()); throw new RenException("请求【"+url+"】失败......"+stringResult.error());
} }
JSONObject jsonObject = JSON.parseObject(stringResult.getData()); return stringResult.getData();
return jsonObject;
} }
} }

Loading…
Cancel
Save