Browse Source

基础框架发布: 8.2.44

1) 支持前端远程入口HTTPS协议的配置规则(正则表达式)
main
wangshaoping 2 weeks ago
parent
commit
3c63853e90
  1. 2
      gradle.properties
  2. 24
      io.sc.platform.mvc/src/main/java/io/sc/platform/mvc/service/impl/FrontEndServiceImpl.java
  3. 3
      io.sc.platform.mvc/src/main/resources/META-INF/platform/plugins/application-properties.json

2
gradle.properties

@ -37,7 +37,7 @@ application_version=1.0.0
# platform
###########################################################
platform_group=io.sc
platform_version=8.2.43
platform_version=8.2.44
platform_plugin_version=8.2.10
platform_core_frontend_version=8.2.137

24
io.sc.platform.mvc/src/main/java/io/sc/platform/mvc/service/impl/FrontEndServiceImpl.java

@ -8,6 +8,8 @@ import io.sc.platform.mvc.service.FrontEndService;
import io.sc.platform.util.UrlUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@ -19,10 +21,14 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Service("io.sc.platform.mvc.service.impl.FrontEndServiceImpl")
public class FrontEndServiceImpl implements FrontEndService {
private static final Logger log = LoggerFactory.getLogger(FrontEndServiceImpl.class);
@Autowired private Environment environment;
/**
* 本地前端模块 Map
* key: 模块名称
@ -97,7 +103,7 @@ public class FrontEndServiceImpl implements FrontEndService {
}
private String getRemoteEntryUrlPrefix(FrontEndModule frontEndModule,HttpServletRequest request) {
String protocol =null;
String protocol ="http";
String host =null;
int port =80;
String contextPath =null;
@ -108,19 +114,25 @@ public class FrontEndServiceImpl implements FrontEndService {
log.error("",e);
}
if(requestUrl!=null){
protocol =StringUtils.hasText(frontEndModule.getProtocol())?frontEndModule.getProtocol():requestUrl.getProtocol();
//protocol =StringUtils.hasText(frontEndModule.getProtocol())?frontEndModule.getProtocol():requestUrl.getProtocol();
host =StringUtils.hasText(frontEndModule.getHost())?frontEndModule.getHost():requestUrl.getHost();
port =frontEndModule.getPort()!=null?frontEndModule.getPort():requestUrl.getPort();
}else{
protocol =StringUtils.hasText(frontEndModule.getProtocol())?frontEndModule.getProtocol():request.getProtocol();
//protocol =StringUtils.hasText(frontEndModule.getProtocol())?frontEndModule.getProtocol():request.getProtocol();
host =StringUtils.hasText(frontEndModule.getHost())?frontEndModule.getHost():request.getLocalAddr();
port =frontEndModule.getPort()!=null?frontEndModule.getPort():request.getLocalPort();
}
if(protocol.toUpperCase().startsWith("HTTPS")){
//通过请求 URL 规则判断是否采用 HTTPS
String matcherString =environment.getProperty("appplication.frontend.remoteEntry.protocol.https.matcher.url",String.class,"");
if(StringUtils.hasText(matcherString)){
Pattern pattern =Pattern.compile(matcherString);
Matcher matcher =pattern.matcher(requestUrl.toString());
if(matcher.find()){
protocol ="https";
}else {
protocol = "http";
}
}
contextPath =StringUtils.hasText(frontEndModule.getContextPath())?frontEndModule.getContextPath():request.getContextPath();
StringBuilder sb =new StringBuilder();

3
io.sc.platform.mvc/src/main/resources/META-INF/platform/plugins/application-properties.json

@ -4,6 +4,9 @@
"order": 2000,
"description": "spring.mvc configuration",
"properties": [
"# frontend remote entry url HTTPS protocol match pattern",
"appplication.frontend.remoteEntry.protocol.https.matcher.url = ",
"",
"spring.mvc.async.request-timeout = 600000"
]
},

Loading…
Cancel
Save