Skip to content

Commit a57340c

Browse files
committed
feat: support ipv6
1 parent 73b8003 commit a57340c

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

backend/web/src/main/java/org/jumpserver/chen/web/service/impl/JmsSessionService.java

+19-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import org.jumpserver.wisp.ServiceOuterClass;
1515
import org.springframework.stereotype.Service;
1616

17+
import java.net.InetAddress;
18+
import java.net.UnknownHostException;
1719
import java.time.Instant;
1820

1921
@Service
@@ -97,10 +99,26 @@ private ServiceOuterClass.TokenResponse getTokenResponse(String token) {
9799
}
98100
}
99101

102+
public static String getIPAddressType(String host) {
103+
try {
104+
InetAddress address = InetAddress.getByName(host);
105+
if (address.getHostAddress().contains(":")) {
106+
return "IPv6";
107+
} else {
108+
return "IPv4";
109+
}
110+
} catch (UnknownHostException e) {
111+
return "Unknown";
112+
}
113+
}
114+
100115
private Datasource createDatasource(ServiceOuterClass.TokenResponse tokenResp) {
101116
DBConnectInfo dbConnectInfo = new DBConnectInfo();
102117

103-
dbConnectInfo.setHost(tokenResp.getData().getAsset().getAddress());
118+
var address = getIPAddressType(dbConnectInfo.getHost()).equals("IPv6") ?
119+
dbConnectInfo.getHost() : String.format("[%s]", dbConnectInfo.getHost());
120+
121+
dbConnectInfo.setHost(address);
104122
dbConnectInfo.setPort(tokenResp.getData().getAsset().getProtocols(0).getPort());
105123
dbConnectInfo.setDbType(tokenResp.getData().getAsset().getProtocols(0).getName().toLowerCase());
106124
dbConnectInfo.setUser(tokenResp.getData().getAccount().getUsername());

0 commit comments

Comments
 (0)