Skip to content

Commit 01f1230

Browse files
author
duke
committed
Backport e18e95ed11c1df7eeb162c2303f027564ed6f6aa
1 parent 8fd9a73 commit 01f1230

File tree

1 file changed

+72
-15
lines changed

1 file changed

+72
-15
lines changed

test/jdk/sun/security/x509/URICertStore/CRLReadTimeout.java

Lines changed: 72 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2019, 2025, Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -22,45 +22,101 @@
2222
*/
2323

2424
/*
25-
* @test
25+
* @test id=0
2626
* @bug 8191808 8179502
2727
* @summary check that CRL download is interrupted if it takes too long
2828
* @modules java.base/sun.security.x509
2929
* java.base/sun.security.util
3030
* @library /test/lib
31-
* @run main/othervm -Dcom.sun.security.crl.readtimeout=1
31+
* @run main/othervm -Djava.security.debug=certpath -Dcom.sun.security.crl.readtimeout=1
3232
* CRLReadTimeout 5000 false
33-
* @run main/othervm -Dcom.sun.security.crl.readtimeout=1s
33+
*/
34+
35+
/*
36+
* @test id=1
37+
* @bug 8191808 8179502
38+
* @summary check that CRL download is interrupted if it takes too long
39+
* @modules java.base/sun.security.x509
40+
* java.base/sun.security.util
41+
* @library /test/lib
42+
* @run main/othervm -Djava.security.debug=certpath -Dcom.sun.security.crl.readtimeout=1s
3443
* CRLReadTimeout 5000 false
35-
* @run main/othervm -Dcom.sun.security.crl.readtimeout=4
44+
*/
45+
46+
/*
47+
* @test id=2
48+
* @bug 8191808 8179502
49+
* @summary check that CRL download is interrupted if it takes too long
50+
* @modules java.base/sun.security.x509
51+
* java.base/sun.security.util
52+
* @library /test/lib
53+
* @run main/othervm -Djava.security.debug=certpath -Dcom.sun.security.crl.readtimeout=200
3654
* CRLReadTimeout 1000 true
37-
* @run main/othervm -Dcom.sun.security.crl.readtimeout=1500ms
55+
*/
56+
57+
/*
58+
* @test id=3
59+
* @bug 8191808 8179502
60+
* @summary check that CRL download is interrupted if it takes too long
61+
* @modules java.base/sun.security.x509
62+
* java.base/sun.security.util
63+
* @library /test/lib
64+
* @run main/othervm -Djava.security.debug=certpath -Dcom.sun.security.crl.readtimeout=1500ms
3865
* CRLReadTimeout 5000 false
39-
* @run main/othervm -Dcom.sun.security.crl.readtimeout=4500ms
40-
* CRLReadTimeout 1000 true
4166
*/
4267

43-
import java.io.*;
68+
/*
69+
* @test id=4
70+
* @bug 8191808 8179502
71+
* @summary check that CRL download is interrupted if it takes too long
72+
* @modules java.base/sun.security.x509
73+
* java.base/sun.security.util
74+
* @library /test/lib
75+
* @run main/othervm -Djava.security.debug=certpath -Dcom.sun.security.crl.readtimeout=4500ms
76+
* CRLReadTimeout 100 true
77+
*/
78+
79+
import java.io.File;
80+
import java.io.IOException;
81+
import java.io.InputStream;
82+
import java.io.OutputStream;
4483
import java.math.BigInteger;
84+
import java.net.InetAddress;
4585
import java.net.InetSocketAddress;
4686
import java.net.SocketTimeoutException;
4787
import java.security.GeneralSecurityException;
4888
import java.security.KeyStore;
4989
import java.security.PrivateKey;
50-
import java.security.cert.*;
90+
import java.security.cert.CRLException;
91+
import java.security.cert.CertPath;
92+
import java.security.cert.CertPathValidator;
93+
import java.security.cert.CertPathValidatorException;
94+
import java.security.cert.CertificateFactory;
95+
import java.security.cert.PKIXParameters;
96+
import java.security.cert.PKIXRevocationChecker;
97+
import java.security.cert.TrustAnchor;
98+
import java.security.cert.X509CRL;
99+
import java.security.cert.X509Certificate;
51100
import java.util.Date;
52101
import java.util.EnumSet;
53102
import java.util.List;
54103
import java.util.Set;
55104
import java.util.concurrent.TimeUnit;
56105

57-
import static java.security.cert.PKIXRevocationChecker.Option.*;
106+
import static java.security.cert.PKIXRevocationChecker.Option.NO_FALLBACK;
107+
import static java.security.cert.PKIXRevocationChecker.Option.PREFER_CRLS;
108+
import static java.security.cert.PKIXRevocationChecker.Option.SOFT_FAIL;
58109

59110
import com.sun.net.httpserver.HttpServer;
60111
import jdk.test.lib.SecurityTools;
61112
import jdk.test.lib.process.OutputAnalyzer;
62113
import sun.security.util.SignatureUtil;
63-
import sun.security.x509.*;
114+
import sun.security.x509.AuthorityKeyIdentifierExtension;
115+
import sun.security.x509.CRLExtensions;
116+
import sun.security.x509.CRLNumberExtension;
117+
import sun.security.x509.KeyIdentifier;
118+
import sun.security.x509.X500Name;
119+
import sun.security.x509.X509CRLImpl;
64120

65121
public class CRLReadTimeout {
66122

@@ -117,9 +173,10 @@ private static void testTimeout(int port, boolean expectedPass)
117173
// unwrap soft fail exceptions and check for SocketTimeoutException
118174
List<CertPathValidatorException> softExc = prc.getSoftFailExceptions();
119175
if (expectedPass) {
120-
if (softExc.size() > 0) {
176+
if (!softExc.isEmpty()) {
121177
throw new RuntimeException("Expected to pass, found " +
122-
softExc.size() + " soft fail exceptions");
178+
softExc.size() +
179+
" soft fail exceptions");
123180
}
124181
} else {
125182
boolean foundSockTOExc = false;
@@ -182,7 +239,7 @@ public CrlHttpServer(int timeout) throws IOException {
182239
}
183240

184241
public void start() throws IOException {
185-
server.bind(new InetSocketAddress(0), 0);
242+
server.bind(new InetSocketAddress(InetAddress.getLoopbackAddress(), 0), 0);
186243
server.createContext("/crl", t -> {
187244
try (InputStream is = t.getRequestBody()) {
188245
is.readAllBytes();

0 commit comments

Comments
 (0)