You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2018/09/12 18:49:32 UTC

svn commit: r1840737 - in /tomcat/trunk: java/org/apache/catalina/manager/ManagerServlet.java webapps/docs/changelog.xml

Author: markt
Date: Wed Sep 12 18:49:31 2018
New Revision: 1840737

URL: http://svn.apache.org/viewvc?rev=1840737&view=rev
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=62712
Correct NPE in Manager application when attempting to view configured certificates for an APR/native TLS connector.

Modified:
    tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java?rev=1840737&r1=1840736&r2=1840737&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java Wed Sep 12 18:49:31 2018
@@ -1806,25 +1806,33 @@ public class ManagerServlet extends Http
             if (Boolean.TRUE.equals(connector.getProperty("SSLEnabled"))) {
                 SSLHostConfig[] sslHostConfigs = connector.getProtocolHandler().findSslHostConfigs();
                 for (SSLHostConfig sslHostConfig : sslHostConfigs) {
-                    Set<SSLHostConfigCertificate> sslHostConfigCerts =
-                            sslHostConfig.getCertificates();
-                    for (SSLHostConfigCertificate sslHostConfigCert : sslHostConfigCerts) {
-                        String name = connector.toString() + "-" + sslHostConfig.getHostName() +
-                                "-" + sslHostConfigCert.getType();
-                        List<String> certList = new ArrayList<>();
-                        SSLContext sslContext = sslHostConfigCert.getSslContext();
-                        String alias = sslHostConfigCert.getCertificateKeyAlias();
-                        if (alias == null) {
-                            alias = "tomcat";
-                        }
-                        X509Certificate[] certs = sslContext.getCertificateChain(alias);
-                        if (certs == null) {
-                            certList.add(sm.getString("managerServlet.certsNotAvailable"));
-                        } else {
-                            for (Certificate cert : certs) {
-                                certList.add(cert.toString());
+                    if (sslHostConfig.getOpenSslContext().longValue() == 0) {
+                        // Not set. Must be JSSE based.
+                        Set<SSLHostConfigCertificate> sslHostConfigCerts =
+                                sslHostConfig.getCertificates();
+                        for (SSLHostConfigCertificate sslHostConfigCert : sslHostConfigCerts) {
+                            String name = connector.toString() + "-" + sslHostConfig.getHostName() +
+                                    "-" + sslHostConfigCert.getType();
+                            List<String> certList = new ArrayList<>();
+                            SSLContext sslContext = sslHostConfigCert.getSslContext();
+                            String alias = sslHostConfigCert.getCertificateKeyAlias();
+                            if (alias == null) {
+                                alias = "tomcat";
                             }
+                            X509Certificate[] certs = sslContext.getCertificateChain(alias);
+                            if (certs == null) {
+                                certList.add(sm.getString("managerServlet.certsNotAvailable"));
+                            } else {
+                                for (Certificate cert : certs) {
+                                    certList.add(cert.toString());
+                                }
+                            }
+                            result.put(name, certList);
                         }
+                    } else {
+                        List<String> certList = new ArrayList<>();
+                        certList.add(sm.getString("managerServlet.certsNotAvailable"));
+                        String name = connector.toString() + "-" + sslHostConfig.getHostName();
                         result.put(name, certList);
                     }
                 }

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1840737&r1=1840736&r2=1840737&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Sep 12 18:49:31 2018
@@ -70,6 +70,14 @@
       </fix>
     </changelog>
   </subsection>
+  <subsection name="Web applications">
+    <changelog>
+      <fix>
+        <bug>62712</bug>: Correct NPE in Manager application when attempting to
+        view configured certificates for an APR/native TLS connector. (markt)
+      </fix>
+    </changelog>
+  </subsection>
   <subsection name="Other">
     <changelog>
       <fix>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org