Browse Source

企业微信登录加密验证

master
liwenxuan 3 weeks ago
parent
commit
5fb62e02c7
  1. 5
      pom.xml
  2. 100
      src/main/java/com/dreamchaser/depository_manage/config/JsonData.java
  3. 64
      src/main/java/com/dreamchaser/depository_manage/config/PublicConfig.java
  4. 94
      src/main/java/com/dreamchaser/depository_manage/utils/HttpUtils.java
  5. 2
      src/main/resources/application.yml

5
pom.xml

@ -261,6 +261,11 @@
<version>1.13</version> <version>1.13</version>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
</dependencies> </dependencies>

100
src/main/java/com/dreamchaser/depository_manage/config/JsonData.java

@ -0,0 +1,100 @@
package com.dreamchaser.depository_manage.config;
public class JsonData {
/**
* 状态码 0表示成功过1表示处理中-1 表示失败
*/
private Integer code;
/**
* 信息表示
*/
private String msg;
/**
* 业务数据
*/
private Object data;
public JsonData(){}
public JsonData(Integer code, Object data, String msg){
this.code = code;
this.data = data;
this.msg = msg;
}
/**
* 成功不用返回数据
* @return
*/
public static JsonData buildSuccess(){
return new JsonData(0,null,null);
}
/**
* 成功返回数据
* @param data
* @return
*/
public static JsonData buildSuccess(Object data){
return new JsonData(0,data,null);
}
/**
* 失败固定状态码
* @param msg
* @return
*/
public static JsonData buildError(String msg){
return new JsonData(1 ,null,msg);
}
/**
* 失败自定义错误码和信息
* @param code
* @param msg
* @return
*/
public static JsonData buildError(Integer code , String msg){
return new JsonData(code ,null,msg);
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
@Override
public String toString() {
return "JsonData{" +
"code=" + code +
", msg='" + msg + '\'' +
", data=" + data +
'}';
}
}

64
src/main/java/com/dreamchaser/depository_manage/config/PublicConfig.java

@ -8,6 +8,7 @@ import com.dreamchaser.depository_manage.entity.Post;
import com.dreamchaser.depository_manage.entity.UserByPort; import com.dreamchaser.depository_manage.entity.UserByPort;
import com.dreamchaser.depository_manage.pojo.AdministrationP; import com.dreamchaser.depository_manage.pojo.AdministrationP;
import com.dreamchaser.depository_manage.utils.HttpUtils; import com.dreamchaser.depository_manage.utils.HttpUtils;
import com.dreamchaser.depository_manage.utils.Md5;
import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; import com.dreamchaser.depository_manage.utils.ObjectFormatUtil;
import lombok.Data; import lombok.Data;
import org.apache.http.protocol.HTTP; import org.apache.http.protocol.HTTP;
@ -155,9 +156,66 @@ public class PublicConfig {
} }
return userByPortList; return userByPortList;
} }
/**
* 外网获取userkey number
* @return
*/
public static Map<String,String> getWaiKeyNumber(){
String url = "http://172.20.2.87:39168/empower/gaintoken";
Map<String, Object> map = new HashMap<>();
map.put("username", "luruankeji");
map.put("password", "lu@ruan#ke$ji");
String jsonString = JSONObject.toJSONString(map);
JSONObject paramObject = JSONObject.parseObject(jsonString);
String post = null;
try {
post = HttpUtils.send1(url, paramObject, HTTP.UTF_8);
} catch (IOException e) {
e.printStackTrace();
}
/*System.out.println(url);
System.out.println(jsonString);
System.out.println(JSONObject.toJSONString(post));*/
JSONObject jsonObject = JSONObject.parseObject(post);
JSONObject data = (JSONObject) jsonObject.get("data");
//{"number":"17612902927927","token":"691586a906491adc0a385688f5743ed5"}
String codeString = data.get("number").toString();
String token = data.get("token").toString();
String appKey = "luquan_hr";
String one1 = Md5.crypt(codeString);
String one2 = Md5.crypt(appKey);
String one = one1+one2;
System.out.println("one");
System.out.println(one);
String two = Md5.crypt(one)+appKey;
System.out.println("two");
System.out.println(two);
String therr = Md5.crypt(two);
System.out.println("therr");
System.out.println(therr);
String number = therr;
Map<String,String> map1 = new HashMap<>();
map1.put("token",token);
map1.put("number",number);
//System.out.println("11111111111111111111111111111111111111111111111111111111111111111");
return map1;
}
// 通过获取的企业微信UserId获取数据库中的用户以及对应key与token // 通过获取的企业微信UserId获取数据库中的用户以及对应key与token
public static Map<String, Object> findUserByQyWxUserId(String userId) { public static Map<String, Object> findUserByQyWxUserId(String userId) {
Map<String,String> TokenNumberMap = getWaiKeyNumber();
System.out.println("getWaiKeyNumbergetWaiKeyNumbergetWaiKeyNumbergetWaiKeyNumbergetWaiKeyNumbergetWaiKeyNumber");
System.out.println(TokenNumberMap);
String url = external_url + "/staff/wechat_give_uscont"; String url = external_url + "/staff/wechat_give_uscont";
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
@ -166,10 +224,14 @@ public class PublicConfig {
JSONObject paramObject = JSONObject.parseObject(jsonString); JSONObject paramObject = JSONObject.parseObject(jsonString);
String post = null; String post = null;
try { try {
post = HttpUtils.send(url, paramObject, HTTP.UTF_8, null, null); post = HttpUtils.send2(url, paramObject, HTTP.UTF_8, TokenNumberMap.get("token"), TokenNumberMap.get("number"));
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
System.out.println(url);
//System.out.println("userId---> "+userId);
System.out.println(jsonString);
System.out.println(JSONObject.toJSONString(post));
JSONObject jsonObject = JSONObject.parseObject(post); JSONObject jsonObject = JSONObject.parseObject(post);
JSONObject data = (JSONObject) jsonObject.get("data"); JSONObject data = (JSONObject) jsonObject.get("data");
UserByPort userByPort = JSONObject.toJavaObject((JSONObject) data.get("userinfo"), UserByPort.class); UserByPort userByPort = JSONObject.toJavaObject((JSONObject) data.get("userinfo"), UserByPort.class);

94
src/main/java/com/dreamchaser/depository_manage/utils/HttpUtils.java

@ -244,6 +244,100 @@ public class HttpUtils {
/**
* 发送post请求
* @param url 路径
* @param jsonObject 参数(json类型)
* @param encoding 编码格式
* @return
* @throws ParseException
* @throws IOException
*/
public static String send1(String url, JSONObject jsonObject, String encoding) throws ParseException, IOException{
String body = "";
//创建httpclient对象
CloseableHttpClient client = HttpClients.createDefault();
//创建post方式请求对象
HttpPost httpPost = new HttpPost(url);
//装填参数
StringEntity s = new StringEntity(jsonObject.toString(), "utf-8");
s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
"application/json"));
//设置参数到请求对象中
httpPost.setEntity(s);
// System.out.println("请求参数:"+nvps.toString());
//设置header信息
//指定报文头【Content-type】、【User-Agent】
httpPost.setHeader("Content-type", "application/json");
httpPost.setHeader("Origin", "http://172.20.2.87");
httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
System.out.println("请求地址:"+url);
//执行请求操作,并拿到结果(同步阻塞)
CloseableHttpResponse response = client.execute(httpPost);
//获取结果实体
org.apache.http.HttpEntity entity = response.getEntity();
if (entity != null) {
//按指定编码转换结果实体为String类型
body = EntityUtils.toString(entity, encoding);
//System.out.println(body);
}
EntityUtils.consume(entity);
//释放链接
response.close();
return body;
}
/**
* 发送post请求
* @param url 路径
* @param jsonObject 参数(json类型)
* @param encoding 编码格式
* @return
* @throws ParseException
* @throws IOException
*/
public static String send2(String url, JSONObject jsonObject, String encoding,String token,String number) throws ParseException, IOException{
String body = "";
//创建httpclient对象
CloseableHttpClient client = HttpClients.createDefault();
//创建post方式请求对象
HttpPost httpPost = new HttpPost(url);
//装填参数
StringEntity s = new StringEntity(jsonObject.toString(), "utf-8");
s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
"application/json"));
//设置参数到请求对象中
httpPost.setEntity(s);
// System.out.println("请求参数:"+nvps.toString());
//设置header信息
//指定报文头【Content-type】、【User-Agent】
httpPost.setHeader("Content-type", "application/json");
httpPost.setHeader("Origin", "http://172.20.2.87");
httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
httpPost.setHeader("token", token);
httpPost.setHeader("number", number);
System.out.println("请求地址:"+url);
//执行请求操作,并拿到结果(同步阻塞)
CloseableHttpResponse response = client.execute(httpPost);
//获取结果实体
org.apache.http.HttpEntity entity = response.getEntity();
if (entity != null) {
//按指定编码转换结果实体为String类型
body = EntityUtils.toString(entity, encoding);
//System.out.println(body);
}
EntityUtils.consume(entity);
//释放链接
response.close();
return body;
}
} }

2
src/main/resources/application.yml

@ -1,6 +1,6 @@
spring: spring:
profiles: profiles:
active: test active: prod
server: server:
port: 11111 port: 11111
#port: 13122 #port: 13122
Loading…
Cancel
Save