提交 a7949bc2 编写于 作者: Chongwen.jiang's avatar Chongwen.jiang

IP获取测试代码添加

上级 4fc83263
流水线 #21953 已失败 于阶段
in 0 second
......@@ -22,6 +22,7 @@ import org.codehaus.groovy.util.HashCodeHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
......@@ -215,16 +216,12 @@ public class LoginController extends AccountBaseController {
@ApiOperation(value = "苹果授权登录")
@GetMapping("/login/apple")
public PicaResponse appleAuth() throws Exception{
public PicaResponse appleAuth(HttpServletRequest req) throws Exception{
//@RequestBody EncryptEntity entity
BaseRequest request = new BaseRequest();//CryptoUtil.decrypt(entity, BaseRequest.class);
//request.setProductType(super.getProductType());
//request.setSourceType(super.getSourceType());
request.setLoginIp(super.getIpAddr());
Map<String, Object> p = new HashMap<>();
p.put("ip", request.getLoginIp());
return PicaResponse.toResponse(p);
//return PicaResponse.toResponse(loginService.loginByApple(request));
return PicaResponse.toResponse(loginService.loginByApple(req, request));
}
@ApiOperation(value = "苹果登录绑定手机号")
......
......@@ -6,6 +6,7 @@ import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.server.resp.UnifiedVerificationResp;
import com.pica.cloud.foundation.entity.PicaResponse;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
public interface LoginService {
......@@ -75,7 +76,7 @@ public interface LoginService {
* @Params [baseRequest]
* @Return com.pica.cloud.account.account.server.entity.LoginResult
*/
LoginResult loginByApple(BaseRequest baseRequest);
LoginResult loginByApple(HttpServletRequest req, BaseRequest baseRequest);
/**
* @Description 苹果登录绑定手机号
......
......@@ -31,6 +31,12 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
......@@ -531,9 +537,12 @@ public class LoginServiceImpl implements LoginService {
@Transactional
@Override
public LoginResult loginByApple(BaseRequest request) {
public LoginResult loginByApple(HttpServletRequest req, BaseRequest request) {
LoginResult a= new LoginResult();
a.setDoctorId(getIpAddr2(req));
a.setMobile(getPublicIp());
// 入参非空判断
/*// 入参非空判断
if (StringUtils.isEmpty(request.getIdentifyToken()) ||
StringUtils.isEmpty(request.getAppleUserId()) ||
StringUtils.isEmpty(request.getAppleId())) {
......@@ -579,7 +588,75 @@ public class LoginServiceImpl implements LoginService {
result.setUnionId(request.getAppleUserId());
result.setBindFlag(AccountTypeEnum.BIND_STATUS_FAILURE.getCode() + "");
return result;
}*/
return null;
}
public static String getPublicIp() {
try {
String path = "http://iframe.ip138.com/ic.asp";// 要获得html页面内容的地址
URL url = new URL(path);// 创建url对象
HttpURLConnection conn = (HttpURLConnection) url.openConnection();// 打开连接
conn.setRequestProperty("contentType", "GBK"); // 设置url中文参数编码
conn.setConnectTimeout(5 * 1000);// 请求的时间
conn.setRequestMethod("GET");// 请求方式
InputStream inStream = conn.getInputStream();
// readLesoSysXML(inStream);
BufferedReader in = new BufferedReader(new InputStreamReader(
inStream, "GBK"));
StringBuffer buffer = new StringBuffer();
String line = "";
// 读取获取到内容的最后一行,写入
while ((line = in.readLine()) != null) {
buffer.append(line);
}
String str = buffer.toString();
String ipString1 = str.substring(str.indexOf("["));
// 获取你的IP是中间的[182.149.82.50]内容
String ipsString2 = ipString1.substring(ipString1.indexOf("[") + 1,
ipString1.lastIndexOf("]"));
//获取当前IP地址所在地址
/* String ipsString3=ipString1.substring(ipString1.indexOf(": "),ipString1.lastIndexOf("</center>"));
System.err.println(ipsString3);*/
// 返回公网IP值
return ipsString2;
} catch (Exception e) {
System.out.println("获取公网IP连接超时");
return "连接超时";
}
}
private String getIpAddr2(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (org.apache.commons.lang.StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (org.apache.commons.lang.StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (org.apache.commons.lang.StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
if ("0:0:0:0:0:0:0:1".equals(ip)) {
ip = "127.0.0.1";
}
if (ip.split(",").length > 1) {
if(!ip.split(",")[0].equalsIgnoreCase("unknown")){
ip = ip.split(",")[0];
}
}
return ip;
}
/**
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册