Commit 7c0cf9aa authored by 技术部-任文超's avatar 技术部-任文超

Merge branch 'master' into 20190522-VerifyCode

parents 4fb59ba7 84b61e36
package cn.quantgroup.xyqb.controller.external.user;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.controller.IBaseController;
import cn.quantgroup.xyqb.entity.Merchant;
......@@ -34,12 +8,37 @@ import cn.quantgroup.xyqb.entity.WechatUserInfo;
import cn.quantgroup.xyqb.model.AuthBean;
import cn.quantgroup.xyqb.model.LoginProperties;
import cn.quantgroup.xyqb.model.webchat.AccessTokenResponse;
import cn.quantgroup.xyqb.service.http.IHttpService;
import cn.quantgroup.xyqb.service.merchant.IMerchantService;
import cn.quantgroup.xyqb.service.session.ISessionService;
import cn.quantgroup.xyqb.service.user.IUserService;
import cn.quantgroup.xyqb.service.wechat.IWechatService;
import cn.quantgroup.xyqb.util.EmojiUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableList;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.*;
/**
* Created by 11 on 2017/1/17.
......@@ -83,9 +82,6 @@ public class WeChatController implements IBaseController {
@Value("${api.http}")
private String xyqbDomainStr;
@Autowired
private IHttpService httpService;
/**
* 开发者资质认证,有必要吗?
*
......@@ -218,9 +214,9 @@ public class WeChatController implements IBaseController {
// 微信跳转请求入参监控
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
LOGGER.info("[WeChatController][receiveCodeWithDefault]微信授权及跳转:code:{},systemKey:{},schema:{},registerFrom:{},redirect:{},request:{}", code, systemKey, schema, registerFrom, redirect, JSON.toJSONString(getRequestHeaderMap(request)));
/*
* 预处理(容错)
*/
/*
* 预处理(容错)
*/
registerFrom = Optional.ofNullable(registerFrom).orElse(Constants.Channel.WECHAT);
redirect = Optional.ofNullable(redirect).orElse("");
schema = StringUtils.isBlank(schema) ? getProtocol() : schema;
......@@ -278,6 +274,36 @@ public class WeChatController implements IBaseController {
response.setStatus(301);
}
@RequestMapping("/redirectForTest")
public void redirectForTest(String redirect, HttpServletRequest request, HttpServletResponse response) throws MalformedURLException {
URL url = new URL(redirect);
String host = url.getHost();
if (!host.endsWith("liangkebang.com") && !host.endsWith("liangkebang.net")) {
log.error("redirect 非法请求, host:{}", host);
return;
}
String queryString = request.getQueryString();
String redirectUrl = redirect + "?" + queryString;
StringBuilder html = new StringBuilder();
html.append("<!DOCTYPE html>\n" +
"<html>\n" +
"<head>\n" +
" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n" +
"</head>\n" +
"<body>");
html.append(String.format("<a href=\"%s\">让我们走</a>", redirectUrl));
html.append("</body>\n" +
"</html>");
response.setContentType("text/html;charset=utf-8");
try {
PrintWriter out = response.getWriter();
out.write(html.toString());
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 通过redirect_url获取code
*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment