钉钉对接domain https前缀问题【issues/I5WRIN】

pull/7445/head^2
zhangdaiscott 2 years ago
parent c29794d07b
commit fa0ce6e7e1

@ -1,8 +1,6 @@
package org.jeecg.common.util; package org.jeecg.common.util;
import javax.servlet.http.HttpServletRequest; import org.jeecg.common.constant.CommonConstant;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.constant.ServiceNameConstants; import org.jeecg.common.constant.ServiceNameConstants;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
@ -11,6 +9,9 @@ import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/** /**
* @Description: spring * @Description: spring
* @author: jeecg-boot * @author: jeecg-boot
@ -56,12 +57,19 @@ public class SpringContextUtils implements ApplicationContextAware {
public static String getDomain(){ public static String getDomain(){
HttpServletRequest request = getHttpServletRequest(); HttpServletRequest request = getHttpServletRequest();
StringBuffer url = request.getRequestURL(); StringBuffer url = request.getRequestURL();
//微服务情况下获取gateway的basePath //1.微服务情况下获取gateway的basePath
String basePath = request.getHeader(ServiceNameConstants.X_GATEWAY_BASE_PATH); String basePath = request.getHeader(ServiceNameConstants.X_GATEWAY_BASE_PATH);
if(oConvertUtils.isNotEmpty(basePath)){ if(oConvertUtils.isNotEmpty(basePath)){
return basePath; return basePath;
}else{ }else{
return url.delete(url.length() - request.getRequestURI().length(), url.length()).toString(); String domain = url.delete(url.length() - request.getRequestURI().length(), url.length()).toString();
//2.【兼容】SSL认证之后request.getScheme()获取不到https的问题
// https://blog.csdn.net/weixin_34376986/article/details/89767950
String scheme = request.getHeader(CommonConstant.X_FORWARDED_SCHEME);
if(scheme!=null && !request.getScheme().equals(scheme)){
domain = domain.replace(request.getScheme(),scheme);
}
return domain;
} }
} }

Loading…
Cancel
Save