Browse Source

Pull request #10279: REPORT-81270 远程连接配置界面处理IPV6格式的url

Merge in DESIGN/design from ~JOHN.YING/design:release/11.0 to release/11.0

* commit 'fb314c80639e3167b481228f69eaab0b3a5febb5':
  REPORT-81270 远程连接配置界面处理IPV6格式的url--忽略异常+单元测试
  REPORT-81270 远程连接配置界面处理IPV6格式的url--代码调整
  REPORT-81270 远程连接配置界面处理IPV6格式的url--代码调整
  REPORT-81270 远程连接配置界面处理IPV6格式的url
  REPORT-81270 远程连接配置界面处理IPV6格式的url
  REPORT-81270 远程连接配置界面处理IPV6格式的url
  REPORT-81270 远程连接配置界面处理IPV6格式的url
newui
John.Ying-应志浩 2 years ago
parent
commit
e7a1c86eb2
  1. 30
      designer-base/src/main/java/com/fr/env/RemoteWorkspaceURL.java
  2. 10
      designer-base/src/test/java/com/fr/env/RemoteWorkspaceURLTest.java

30
designer-base/src/main/java/com/fr/env/RemoteWorkspaceURL.java vendored

@ -1,13 +1,20 @@
package com.fr.env;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.AssistUtils;
import com.fr.stable.FCloneable;
import com.fr.stable.StringUtils;
import java.net.URI;
import java.net.URISyntaxException;
import com.fr.third.guava.base.Strings;
/**
* @author yaohwu
*/
public class RemoteWorkspaceURL implements FCloneable {
private static final String IPV6_JUDGE_SYMBOL = "[";
private static final String IPV6_JUDGE_SYMBOL2 = "]";
public static final String SYSTEM_LOGIN_PATH = "#management/system/login";
@ -98,6 +105,8 @@ public class RemoteWorkspaceURL implements FCloneable {
parserWebAndServlet(lefts);
}
}
//判断一下IPV6
this.refreshIPV6Format();
}
public boolean hasDefaultHostName() {
@ -129,6 +138,27 @@ public class RemoteWorkspaceURL implements FCloneable {
return this.url;
}
/**
* IPV6地址格式不同,处理字符串的方式不同,需要处理的是port和host
* 形如 http://[XXXX::XXXX:XXXX:XXXX:XXXX]:8080/webroot/decision
*/
public void refreshIPV6Format() {
String url = this.url;
if (Strings.isNullOrEmpty(url)) {
return;
}
if (!url.contains(IPV6_JUDGE_SYMBOL) || !url.contains(IPV6_JUDGE_SYMBOL2)) {
return;
}
URI uri = null;
try {
uri = new URI(url);
this.host = uri.getHost();
this.port = String.valueOf(uri.getPort());
} catch (URISyntaxException ignored) {
}
}
public void setHttps(boolean https) {
isHttps = https;

10
designer-base/src/test/java/com/fr/env/RemoteWorkspaceURLTest.java vendored

@ -242,4 +242,14 @@ public class RemoteWorkspaceURLTest {
assertEquals("servlet", b.getServlet());
//others begin
}
@Test
public void testIPV6Url() {
String trueUrl = "http://[fe80::4d83:cc10:9f6f:3303]:8080/webroot/decision";
RemoteWorkspaceURL remoteWorkspaceURL1 = new RemoteWorkspaceURL(trueUrl);
assertEquals("[fe80::4d83:cc10:9f6f:3303]", remoteWorkspaceURL1.getHost());
assertEquals("8080", remoteWorkspaceURL1.getPort());
assertEquals("webroot", remoteWorkspaceURL1.getWeb());
assertEquals("decision", remoteWorkspaceURL1.getServlet());
}
}

Loading…
Cancel
Save