Skip to content

Commit 5f66e3f

Browse files
committed
Executive System Touch M5+ 75
1 parent 9229726 commit 5f66e3f

5 files changed

Lines changed: 141 additions & 3 deletions

File tree

source/city/analysis/CityAnalysisServer.java

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -223,11 +223,35 @@ protected String httpGet(String urlStr)
223223
HttpsURLConnection httpsConn = (HttpsURLConnection) url.openConnection();
224224
SSLContext sslCtx = getSSLContext();
225225
if (sslCtx != null) httpsConn.setSSLSocketFactory(sslCtx.getSocketFactory());
226+
httpsConn.setHostnameVerifier((hostname, session) -> true);
227+
httpsConn.setRequestMethod("GET");
228+
httpsConn.setConnectTimeout(timeoutMs);
229+
httpsConn.setReadTimeout(timeoutMs);
230+
httpsConn.setRequestProperty("User-Agent", userAgent);
226231
conn = httpsConn;
227232

228-
// Store peer certificate
229-
httpsConn.connect();
233+
int code = conn.getResponseCode();
230234
storeCertificates(url.getHost(), httpsConn.getServerCertificates());
235+
236+
if (code == 200)
237+
{
238+
try (BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8)))
239+
{
240+
StringBuilder sb = new StringBuilder();
241+
String line;
242+
while ((line = reader.readLine()) != null)
243+
{
244+
sb.append(line).append("\n");
245+
}
246+
System.out.println("-- : [CityAnalysisServer] Fetched " + sb.length() + " bytes from " + urlStr + " (port " + port + ")");
247+
return sb.toString();
248+
}
249+
}
250+
else
251+
{
252+
System.err.println("-- : [CityAnalysisServer] HTTP " + code + " from " + urlStr + " (attempt " + attempt + ")");
253+
}
254+
continue;
231255
}
232256
else
233257
{
@@ -268,7 +292,7 @@ protected String httpGet(String urlStr)
268292
}
269293

270294
/**
271-
* Load SSL context from certs directory if keystore exists
295+
* Load SSL context — uses local truststore if available, otherwise trusts all (for cert gathering)
272296
*/
273297
protected SSLContext getSSLContext()
274298
{
@@ -288,6 +312,19 @@ protected SSLContext getSSLContext()
288312
ctx.init(null, tmf.getTrustManagers(), null);
289313
return ctx;
290314
}
315+
316+
// No local truststore — trust all to allow initial cert capture
317+
TrustManager[] trustAll = new TrustManager[]{
318+
new javax.net.ssl.X509TrustManager()
319+
{
320+
public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; }
321+
public void checkClientTrusted(java.security.cert.X509Certificate[] c, String a) {}
322+
public void checkServerTrusted(java.security.cert.X509Certificate[] c, String a) {}
323+
}
324+
};
325+
SSLContext ctx = SSLContext.getInstance("TLS");
326+
ctx.init(null, trustAll, new java.security.SecureRandom());
327+
return ctx;
291328
}
292329
catch (Exception e)
293330
{
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIHIDCCBYigAwIBAgIQbyRWusWeZpQhENEBQzpiOjANBgkqhkiG9w0BAQsFADBR
3+
MQswCQYDVQQGEwJDQTEYMBYGA1UEChMPRW50cnVzdCBMaW1pdGVkMSgwJgYDVQQD
4+
Ex9FbnRydXN0IEVWIFRMUyBJc3N1aW5nIFJTQSBDQSAyMB4XDTI1MDgyNjAwMDAw
5+
MFoXDTI2MDkxMzIzNTk1OVowgbsxDjAMBgNVBAUTBTVDR1Y3MRMwEQYLKwYBBAGC
6+
NzwCAQMTAlVTMR8wHQYLKwYBBAGCNzwCAQITDk5vcnRoIENhcm9saW5hMRowGAYD
7+
VQQPExFHb3Zlcm5tZW50IEVudGl0eTELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5v
8+
cnRoIENhcm9saW5hMRYwFAYDVQQKEw1EdXJoYW0gQ291bnR5MRkwFwYDVQQDExBy
9+
b2R3ZWIuZGNvbmMuZ292MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
10+
vmM610z1bEVmJQ6rAortJnVGk+Bk7ZpXzcgp7I63O+Zoj2iMwJtyBJ8QwfWxYVBT
11+
OPK7GSSCnGTYxM49mOQRMFtqrC9dsZ4dQBEdXOQ2lTfedXJU9/bkPrSZZ1Ou7XQA
12+
pGIUY/3THKo1IDeWkzn/bIxeLGPEwn/B98Att78yC65A1gjMFJqiLO5gsn7ao0Ft
13+
wlW+E9IHzN4wehlqNCWlAL4JeymGqcJ6RK1QbY04Lz12TXUtsZqe5rOlHnUG/Zxv
14+
/tXLGZXt6U7af4BwDDZHVZE86fuF3cNi9yHenwpRTi4DiBhuR3PDYAVFJdxV2gbs
15+
6hiqtJho5iL4Ppz5lPF6tQIDAQABo4IDBzCCAwMwHwYDVR0jBBgwFoAUwbGh/Sc1
16+
jshxAp56kwY5ZGbmap0wHQYDVR0OBBYEFIov/96NrJliRFyZ/pP3JXv3QBgoMA4G
17+
A1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMB
18+
BggrBgEFBQcDAjASBgNVHSAECzAJMAcGBWeBDAEBMEUGA1UdHwQ+MDwwOqA4oDaG
19+
NGh0dHA6Ly9jcmwuc2VjdGlnby5jb20vRW50cnVzdEVWVExTSXNzdWluZ1JTQUNB
20+
Mi5jcmwwdQYIKwYBBQUHAQEEaTBnMEAGCCsGAQUFBzAChjRodHRwOi8vY3J0LnNl
21+
Y3RpZ28uY29tL0VudHJ1c3RFVlRMU0lzc3VpbmdSU0FDQTIuY3J0MCMGCCsGAQUF
22+
BzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTCCAX0GCisGAQQB1nkCBAIEggFt
23+
BIIBaQFnAHUA2AlVO5RPev/IFhlvlE+Fq7D4/F6HVSYPFdEucrtFSxQAAAGY5v/Y
24+
zgAABAMARjBEAiAg+/b+qWMd2oLyci7XBJEvVJvcxD2kgp31jVc3wWCWbwIgI1Zr
25+
fM05IoQ4XyV1mCKWIgnOoCipHHpgQBuUvQkctxcAdgCsqzBwbOvshDH0E9L0kV8R
26+
HkIkQ7HypoxPPCs7px4CwwAAAZjm/9hvAAAEAwBHMEUCIQDtwLvVKkmCSTVEBF7Q
27+
AybUc4GmqT6VxSSKrXDhBbsdWwIgLjCMbB/EZ0l7g0A4wfu8Xi9XSIl/TqwQEPO7
28+
YOSAsOMAdgDXbX0Q0af1d8LH6V/XAL/5gskzWmXh0LMBcxfAyMVpdwAAAZjm/9h0
29+
AAAEAwBHMEUCIQDTvQOxFCYobUI9YFOElwCvFJI3q4JF9+AJBc/8nY/mMwIgbljd
30+
DDR+ndsN0cobfJQHIoZREvLf8IRA4n6VZdbqIOMwMQYDVR0RBCowKIIQcm9kd2Vi
31+
LmRjb25jLmdvdoIUd3d3LnJvZHdlYi5kY29uYy5nb3YwDQYJKoZIhvcNAQELBQAD
32+
ggGBAE9FBE0F76L2D0d0WH2x5haKsjrArmLAX+Ns63pASZ3csHZLnhjBKltGzwN/
33+
Rnpa9KpFPqf2QmlTMkqEzeUIBTDOOXlnu6ch/f3UlAcVMwACpnHG8KAnkMYI3Vb9
34+
2ckEj4pE2Z/0aI0T2Nk6mq6Y19FpcWa9JANDh59w/U1BvKpjYrSivQ1WybRvSqnl
35+
imU0zt4XbeU+0JD4HNe1ELJDGZEqvKeQak9ABOQ4WHB4/Ga44dWdc/fhz0ZaR4xC
36+
sYwHNLK6TNCpp13BwVwRo8AasPRq9nS374bCp70xnGXGyS5a65/2EwdchYgk0MTk
37+
MBUdqxBe3LeXgXSkM4u3Ox736FXCIW7Lor+Ul2Cva2QiNdqdkCLXwLgSQk40mwxR
38+
1f8t5Qa8MjbDiP2hHHUUiTpiazfYOtPjV7Qv96dsFsMhIOc5gx//HQ5jfAsAG7H5
39+
AnL4S/2yfdGwmOOp/CHSxkFmVVuSoonxntlJysDZF+bjTlI0tedwIezLImFBDWuo
40+
wivRYg==
41+
-----END CERTIFICATE-----
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDnzCCA0WgAwIBAgIQAtf4mUsZ7x0TyCF9BPn+VjAKBggqhkjOPQQDAjA7MQsw
3+
CQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMQwwCgYD
4+
VQQDEwNXRTEwHhcNMjYwNTA3MTIxNzM3WhcNMjYwODA1MTMxNzI5WjAbMRkwFwYD
5+
VQQDExB3d3cuZHVyaGFtbmMuZ292MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE
6+
cOvwmeV7ycRR+cNMLcfDb+pmBZHADX5Xh6qd8C2qxbXHQZzXv8KlNqjCA8j+LtYR
7+
XV/Y6QbAE2/z+qgIm2JtLaOCAkkwggJFMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUE
8+
DDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQ8rum9WZZyXYFk
9+
dsuU2bEed9NGPjAfBgNVHSMEGDAWgBSQd5I1Z8T/qMyp5nvZgHl7zJP5ODBeBggr
10+
BgEFBQcBAQRSMFAwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vLnBraS5nb29nL3Mvd2Ux
11+
L0F0YzAlBggrBgEFBQcwAoYZaHR0cDovL2kucGtpLmdvb2cvd2UxLmNydDAbBgNV
12+
HREEFDASghB3d3cuZHVyaGFtbmMuZ292MBMGA1UdIAQMMAowCAYGZ4EMAQIBMDYG
13+
A1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jLnBraS5nb29nL3dlMS8tWWo3T1lMNURu
14+
Zy5jcmwwggEEBgorBgEEAdZ5AgQCBIH1BIHyAPAAdgDYCVU7lE96/8gWGW+UT4Wr
15+
sPj8XodVJg8V0S5yu0VLFAAAAZ4CljJIAAAEAwBHMEUCICkV4jdF/iWoPfY08j7m
16+
TUIFR0Gy6i2rkjldVhLAnJOaAiEAoj7PkEeY3uoXB7am18qR0S2vHdtPPFm5MtfU
17+
E2RNkpYAdgDLOPcViXyEoURfW8Hd+8lu8ppZzUcKaQWFsMsUwxRY5wAAAZ4CljJI
18+
AAAEAwBHMEUCIAcfnb19ZUXfyvdOyoHA38h5QjZW02D3BtTrMzw/GoQEAiEAu0in
19+
4KHRocivxz72UfIUY6lspkqZowikLQyRsPk/WsQwCgYIKoZIzj0EAwIDSAAwRQIg
20+
Z7j3l0MCSUjan9vykQerN+wtNt4pOboATuO7syM3TYYCIQCsXpIToECPVMoCiHWp
21+
tguoRONB1fb91in5tfFGSZvHfA==
22+
-----END CERTIFICATE-----
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIICnzCCAiWgAwIBAgIQf/MZd5csIkp2FV0TttaF4zAKBggqhkjOPQQDAzBHMQsw
3+
CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU
4+
MBIGA1UEAxMLR1RTIFJvb3QgUjQwHhcNMjMxMjEzMDkwMDAwWhcNMjkwMjIwMTQw
5+
MDAwWjA7MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZp
6+
Y2VzMQwwCgYDVQQDEwNXRTEwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAARvzTr+
7+
Z1dHTCEDhUDCR127WEcPQMFcF4XGGTfn1XzthkubgdnXGhOlCgP4mMTG6J7/EFmP
8+
LCaY9eYmJbsPAvpWo4H+MIH7MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggr
9+
BgEFBQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU
10+
kHeSNWfE/6jMqeZ72YB5e8yT+TgwHwYDVR0jBBgwFoAUgEzW63T/STaj1dj8tT7F
11+
avCUHYwwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzAChhhodHRwOi8vaS5wa2ku
12+
Z29vZy9yNC5jcnQwKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL2MucGtpLmdvb2cv
13+
ci9yNC5jcmwwEwYDVR0gBAwwCjAIBgZngQwBAgEwCgYIKoZIzj0EAwMDaAAwZQIx
14+
AOcCq1HW90OVznX+0RGU1cxAQXomvtgM8zItPZCuFQ8jSBJSjz5keROv9aYsAm5V
15+
sQIwJonMaAFi54mrfhfoFNZEfuNMSQ6/bIBiNLiyoX46FohQvKeIoJ99cx7sUkFN
16+
7uJW
17+
-----END CERTIFICATE-----
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDejCCAmKgAwIBAgIQf+UwvzMTQ77dghYQST2KGzANBgkqhkiG9w0BAQsFADBX
3+
MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UE
4+
CxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIzMTEx
5+
NTAzNDMyMVoXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoT
6+
GUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFI0
7+
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE83Rzp2iLYK5DuDXFgTB7S0md+8Fhzube
8+
Rr1r1WEYNa5A3XP3iZEwWus87oV8okB2O6nGuEfYKueSkWpz6bFyOZ8pn6KY019e
9+
WIZlD6GEZQbR3IvJx3PIjGov5cSr0R2Ko4H/MIH8MA4GA1UdDwEB/wQEAwIBhjAd
10+
BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDwYDVR0TAQH/BAUwAwEB/zAd
11+
BgNVHQ4EFgQUgEzW63T/STaj1dj8tT7FavCUHYwwHwYDVR0jBBgwFoAUYHtmGkUN
12+
l8qJUC99BM00qP/8/UswNgYIKwYBBQUHAQEEKjAoMCYGCCsGAQUFBzAChhpodHRw
13+
Oi8vaS5wa2kuZ29vZy9nc3IxLmNydDAtBgNVHR8EJjAkMCKgIKAehhxodHRwOi8v
14+
Yy5wa2kuZ29vZy9yL2dzcjEuY3JsMBMGA1UdIAQMMAowCAYGZ4EMAQIBMA0GCSqG
15+
SIb3DQEBCwUAA4IBAQAYQrsPBtYDh5bjP2OBDwmkoWhIDDkic574y04tfzHpn+cJ
16+
odI2D4SseesQ6bDrarZ7C30ddLibZatoKiws3UL9xnELz4ct92vID24FfVbiI1hY
17+
+SW6FoVHkNeWIP0GCbaM4C6uVdF5dTUsMVs/ZbzNnIdCp5Gxmx5ejvEau8otR/Cs
18+
kGN+hr/W5GvT1tMBjgWKZ1i4//emhA1JG1BbPzoLJQvyEotc03lXjTaCzv8mEbep
19+
8RqZ7a2CPsgRbuvTPBwcOMBBmuFeU88+FSBX6+7iP0il8b4Z0QFqIwwMHfs/L6K1
20+
vepuoxtGzi4CZ68zJpiq1UvSqTbFJjtbD4seiMHl
21+
-----END CERTIFICATE-----

0 commit comments

Comments
 (0)