灵动单独校验,增加校验返回描述

master
jiahuiwen 2021-09-02 18:31:23 +08:00
parent 3f28e276fc
commit 42d672d6eb
2 changed files with 139 additions and 2 deletions

View File

@ -1,5 +1,7 @@
package com.ljsd.controller; package com.ljsd.controller;
import com.alibaba.fastjson.JSONObject;
import com.ljsd.pojo.VerifyParams;
import com.ljsd.redis.RedisKey; import com.ljsd.redis.RedisKey;
import com.ljsd.service.*; import com.ljsd.service.*;
import com.ljsd.util.BaseGlobal; import com.ljsd.util.BaseGlobal;
@ -127,8 +129,26 @@ public class GetUserController extends HttpServlet {
if(channel==null||channel.equals("")){ if(channel==null||channel.equals("")){
channel="MHT"; channel="MHT";
} }
boolean verify = serviceMap.get(channel).verify(response, request, admin, platform, pid, openId, token); boolean verify = false;
String msg = "";
String sub_channel = request.getParameter("sub_channel");
if ("MHT".equals(channel) && !"3".equals(platform) && !"1000".equals(sub_channel) && !"20201222".equals(sub_channel)) {
LdVerifyServiceStr instance = LdVerifyServiceStr.getInstance();
VerifyParams params = new VerifyParams();
params.setAppId(instance.properties.getProperty("appId_online"));
params.setSecretKey(instance.properties.getProperty("secretKey_online"));
VerifyParams formatParam = instance.getFormatParam(params,request, openId, token);
String result = instance.verifyFormat(formatParam);
if (result != null && !result.isEmpty()) {
JSONObject jsonObject = JSONObject.parseObject(result);
int state = jsonObject.getIntValue("code");
if(state != 200){
msg = jsonObject.getString("message");
}
}
} else {
verify = serviceMap.get(channel).verify(response, request, admin, platform, pid, openId, token);
}
if(!verify){ if(!verify){
returnErrorToFront(res,response,"校验失败,请重新登录"); returnErrorToFront(res,response,"校验失败,请重新登录");
return; return;
@ -191,6 +211,7 @@ public class GetUserController extends HttpServlet {
res.put("uid", uid); res.put("uid", uid);
res.put("token", utoken); res.put("token", utoken);
res.put("errorCode", 0); res.put("errorCode", 0);
res.put("msg", msg);
BaseGlobal.getInstance().redisApp.set(RedisKey.TOKEN, String.valueOf(uid), utoken, -1, false); BaseGlobal.getInstance().redisApp.set(RedisKey.TOKEN, String.valueOf(uid), utoken, -1, false);
BaseGlobal.getInstance().redisApp.set(RedisKey.PIDGIDTEMP, String.valueOf(uid), pid+"#"+gid, -1, false); BaseGlobal.getInstance().redisApp.set(RedisKey.PIDGIDTEMP, String.valueOf(uid), pid+"#"+gid, -1, false);

View File

@ -0,0 +1,116 @@
package com.ljsd.service;
import com.ljsd.pojo.VerifyParams;
import com.ljsd.util.BaseGlobal;
import com.ljsd.util.HttpUtils;
import com.ljsd.util.MD5Util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
/**
* @author lvxinran
* @date 2021/5/26
* @discribe
*/
public class LdVerifyServiceStr{
private static final Logger LOGGER = LoggerFactory.getLogger(LdVerifyServiceStr.class);
private LdVerifyServiceStr() {
}
/**
*
*
* @return
*/
public static LdVerifyServiceStr getInstance() {
return LdVerifyServiceStr.Instance.instance;
}
public static class Instance {
public final static LdVerifyServiceStr instance = new LdVerifyServiceStr();
}
public Properties properties = BaseGlobal.getInstance().properties;
public String sign = "MHT";
private static String getParamString(Map<String,String> param){
StringBuilder builder = new StringBuilder();
param.forEach((k,v)->{
if(builder.length()>0){
builder.append("&");
}
builder.append(k).append("=").append(v);
});
return builder.toString();
}
// public boolean parseLoginResult(String orderResult){
// try {
// JSONObject jsonObject = JSONObject.parseObject(orderResult);
// int state = jsonObject.getIntValue("code");
// if(state != 200){
// String content = jsonObject.getString("message");
// LOGGER.info("parseLoginResult content={}",content);
// return false;
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
// return true;
// }
/**
*
* sign=md5hex(paramString+md5hex(appid)+md5hex(secret))
* @return
*/
private static String getSign(String paramString,String appid,String secret){
return MD5Util.encrypByMd5(paramString + MD5Util.encrypByMd5(appid) + MD5Util.encrypByMd5(secret));
}
String doVerify(VerifyParams verifyParams){
try{
String login_url = properties.getProperty("login_url");
LOGGER.info("login_url={}",login_url);
Map<String, String> params = new HashMap<>();
params.put("sid", verifyParams.getToken());
params.put("appid", verifyParams.getAppId());
params.put("channellevel1", verifyParams.getChannel());
String sign = getSign(getParamString(params), verifyParams.getAppId(), verifyParams.getSecretKey() );
params.put("sign", sign);
String loginResult = HttpUtils.doPost(login_url,params);
LOGGER.info("loginResult=>{}",loginResult);
return (loginResult);
}catch(Exception e){
return null;
}
}
public String verifyFormat(VerifyParams params) {
return doVerify(params);
}
public VerifyParams getFormatParam(VerifyParams params,HttpServletRequest request, String openId, String token) {
return getMHTParam(params,token);
}
private VerifyParams getMHTParam(VerifyParams params,String token){
params.setChannel("MHT");
params.setToken(token);
return params;
}
}