2
2
3
3
import org .slf4j .Logger ;
4
4
import org .slf4j .LoggerFactory ;
5
- import sun .net .util .IPAddressUtil ;
6
-
7
5
import java .util .Objects ;
8
6
9
7
public class SimpleDBConnectionPoolConfig {
@@ -155,7 +153,7 @@ private static String getNullIfEmpty(String text) {
155
153
private static boolean checkHostNameValid (String hostName ) {
156
154
return hostName .equals ("localhost" ) ||
157
155
isIPV4 (hostName ) ||
158
- IPAddressUtil . isIPv6LiteralAddress (hostName ) ||
156
+ isIPV6 (hostName ) ||
159
157
isDomain (hostName );
160
158
}
161
159
@@ -181,6 +179,37 @@ private static boolean isIPV4(String hostName) {
181
179
}
182
180
return true ;
183
181
}
182
+
183
+ private static boolean isIPV6 (String hostName ) {
184
+ String regex = "(^((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4}){1}|:))"
185
+ + "|(([0-9A-Fa-f]{1,4}:){6}((:[0-9A-Fa-f]{1,4}){1}|"
186
+ + "((22[0-3]|2[0-1][0-9]|[0-1][0-9][0-9]|"
187
+ + "([0-9]){1,2})([.](25[0-5]|2[0-4][0-9]|"
188
+ + "[0-1][0-9][0-9]|([0-9]){1,2})){3})|:))|"
189
+ + "(([0-9A-Fa-f]{1,4}:){5}((:[0-9A-Fa-f]{1,4}){1,2}|"
190
+ + ":((22[0-3]|2[0-1][0-9]|[0-1][0-9][0-9]|"
191
+ + "([0-9]){1,2})([.](25[0-5]|2[0-4][0-9]|"
192
+ + "[0-1][0-9][0-9]|([0-9]){1,2})){3})|:))|"
193
+ + "(([0-9A-Fa-f]{1,4}:){4}((:[0-9A-Fa-f]{1,4}){1,3}"
194
+ + "|:((22[0-3]|2[0-1][0-9]|[0-1][0-9][0-9]|"
195
+ + "([0-9]){1,2})([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|"
196
+ + "([0-9]){1,2})){3})|:))|(([0-9A-Fa-f]{1,4}:){3}((:[0-9A-Fa-f]{1,4}){1,4}|"
197
+ + ":((22[0-3]|2[0-1][0-9]|[0-1][0-9][0-9]|"
198
+ + "([0-9]){1,2})([.](25[0-5]|2[0-4][0-9]|"
199
+ + "[0-1][0-9][0-9]|([0-9]){1,2})){3})|:))|"
200
+ + "(([0-9A-Fa-f]{1,4}:){2}((:[0-9A-Fa-f]{1,4}){1,5}|"
201
+ + ":((22[0-3]|2[0-1][0-9]|[0-1][0-9][0-9]|"
202
+ + "([0-9]){1,2})([.](25[0-5]|2[0-4][0-9]|"
203
+ + "[0-1][0-9][0-9]|([0-9]){1,2})){3})|:))"
204
+ + "|(([0-9A-Fa-f]{1,4}:){1}((:[0-9A-Fa-f]{1,4}){1,6}"
205
+ + "|:((22[0-3]|2[0-1][0-9]|[0-1][0-9][0-9]|"
206
+ + "([0-9]){1,2})([.](25[0-5]|2[0-4][0-9]|"
207
+ + "[0-1][0-9][0-9]|([0-9]){1,2})){3})|:))|"
208
+ + "(:((:[0-9A-Fa-f]{1,4}){1,7}|(:[fF]{4}){0,1}:((22[0-3]|2[0-1][0-9]|"
209
+ + "[0-1][0-9][0-9]|([0-9]){1,2})"
210
+ + "([.](25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|([0-9]){1,2})){3})|:)))$)" ;
211
+ return hostName .matches (regex );
212
+ }
184
213
}
185
214
186
215
0 commit comments