Merge remote-tracking branch 'origin/SecondStage' into SecondStage
This commit is contained in:
+6
-4
@@ -9,6 +9,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -29,8 +30,9 @@ public class LawsSysApiInfoController {
|
||||
@PostMapping("/getStandardDataPage")
|
||||
public Result<IPage<StandardData>> getStandardDataPage(@RequestBody StandardData standardData,
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
return lawsSysApiInfoService.getStandardDataPage(standardData,pageNo,pageSize);
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
return lawsSysApiInfoService.getStandardDataPage(standardData,pageNo,pageSize,req);
|
||||
}
|
||||
|
||||
|
||||
@@ -39,8 +41,8 @@ public class LawsSysApiInfoController {
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/getStandardDataList")
|
||||
public Result<List<StandardData>> getStandardDataList(@RequestBody StandardData standardData) {
|
||||
return lawsSysApiInfoService.getStandardDataList(standardData);
|
||||
public Result<List<StandardData>> getStandardDataList(@RequestBody StandardData standardData,HttpServletRequest req) {
|
||||
return lawsSysApiInfoService.getStandardDataList(standardData,req);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+4
-2
@@ -6,13 +6,15 @@ import com.jero.common.api.vo.Result;
|
||||
import com.jero.modules.docking.api.entity.LawsSysApiInfo;
|
||||
import com.jero.modules.docking.api.vo.StandardData;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface ILawsSysApiInfoService extends IService<LawsSysApiInfo> {
|
||||
|
||||
Result<IPage<StandardData>> getStandardDataPage(StandardData standardData,Integer pageNo,Integer pageSize);
|
||||
Result<IPage<StandardData>> getStandardDataPage(StandardData standardData,Integer pageNo,Integer pageSize,
|
||||
HttpServletRequest req);
|
||||
|
||||
Result<List<StandardData>> getStandardDataList(StandardData standardData);
|
||||
Result<List<StandardData>> getStandardDataList(StandardData standardData,HttpServletRequest req);
|
||||
|
||||
}
|
||||
|
||||
+54
-7
@@ -1,5 +1,6 @@
|
||||
package com.jero.modules.docking.api.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -23,6 +24,7 @@ import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
@@ -42,9 +44,12 @@ public class LawsSysApiInfoServiceImpl extends ServiceImpl<LawsSysApiInfoMapper,
|
||||
|
||||
|
||||
@Override
|
||||
public Result<IPage<StandardData>> getStandardDataPage(StandardData standardData,Integer pageNo,Integer pageSize) {
|
||||
|
||||
// todo 未添加其他系统访问校验
|
||||
public Result<IPage<StandardData>> getStandardDataPage(StandardData standardData,Integer pageNo,Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
String msg = checkSysInfo(standardData.getAppKey(),standardData.getSecret(),req);
|
||||
if(!StringUtils.isEmpty(msg)){
|
||||
return Result.error(msg);
|
||||
}
|
||||
QueryWrapper<StandardData> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.like(!StringUtils.isEmpty(standardData.getStandardNumber()),"standard_number",standardData.getStandardNumber());
|
||||
queryWrapper.like(!StringUtils.isEmpty(standardData.getStandardName()),"standard_name",standardData.getStandardName());
|
||||
@@ -55,7 +60,11 @@ public class LawsSysApiInfoServiceImpl extends ServiceImpl<LawsSysApiInfoMapper,
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<List<StandardData>> getStandardDataList(StandardData standardData) {
|
||||
public Result<List<StandardData>> getStandardDataList(StandardData standardData,HttpServletRequest req) {
|
||||
String msg = checkSysInfo(standardData.getAppKey(),standardData.getSecret(),req);
|
||||
if(!StringUtils.isEmpty(msg)){
|
||||
return Result.error(msg);
|
||||
}
|
||||
QueryWrapper<StandardData> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.like(!StringUtils.isEmpty(standardData.getStandardNumber()),"standard_number",standardData.getStandardNumber());
|
||||
queryWrapper.like(!StringUtils.isEmpty(standardData.getStandardName()),"standard_name",standardData.getStandardName());
|
||||
@@ -64,11 +73,49 @@ public class LawsSysApiInfoServiceImpl extends ServiceImpl<LawsSysApiInfoMapper,
|
||||
return Result.OK(lawsSysApiInfoMapper.getStandardData(queryWrapper, foreignStandardReturnUrl, enterpriseStandardReturnUrl));
|
||||
}
|
||||
|
||||
public String checkSysInfo(String appKey,String secret){
|
||||
|
||||
|
||||
public String checkSysInfo(String appKey,String secret,HttpServletRequest req){
|
||||
if(StringUtils.isEmpty(appKey) || StringUtils.isEmpty(secret)){
|
||||
return "参数异常";
|
||||
}
|
||||
LambdaQueryWrapper<LawsSysApiInfo> query = new LambdaQueryWrapper<>();
|
||||
query.eq(LawsSysApiInfo::getAppKey,appKey);
|
||||
query.eq(LawsSysApiInfo::getSecret,secret);
|
||||
LawsSysApiInfo lawsSysApiInfo = getOne(query,false);
|
||||
if(Objects.isNull(lawsSysApiInfo)){
|
||||
return "非法请求";
|
||||
}
|
||||
if(!StringUtils.isEmpty(lawsSysApiInfo.getIp())
|
||||
&& !Arrays.asList(lawsSysApiInfo.getIp().split(",")).contains(getClientIp(req))){
|
||||
return "非法请求";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private String getClientIp(HttpServletRequest request) {
|
||||
String ipAddress = request.getHeader("X-Forwarded-For");
|
||||
if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
|
||||
ipAddress = request.getHeader("Proxy-Client-IP");
|
||||
}
|
||||
if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
|
||||
ipAddress = request.getHeader("WL-Proxy-Client-IP");
|
||||
}
|
||||
if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
|
||||
ipAddress = request.getHeader("HTTP_CLIENT_IP");
|
||||
}
|
||||
if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
|
||||
ipAddress = request.getHeader("HTTP_X_FORWARDED_FOR");
|
||||
}
|
||||
if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
|
||||
ipAddress = request.getRemoteAddr();
|
||||
}
|
||||
|
||||
// 如果X-Forwarded-For有多层代理,取第一个IP作为客户端真实IP
|
||||
if (ipAddress != null && ipAddress.contains(",")) {
|
||||
ipAddress = ipAddress.split(",")[0];
|
||||
}
|
||||
|
||||
return ipAddress;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user