tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ma...@apache.org
Subject svn commit: r1385193 - in /tomcat/trunk: java/org/apache/catalina/connector/ java/org/apache/catalina/manager/ java/org/apache/coyote/http11/ java/org/apache/tomcat/util/net/ java/org/apache/tomcat/util/net/jsse/ webapps/docs/ webapps/manager/WEB-INF/jsp/
Date Sat, 15 Sep 2012 22:18:09 GMT
Author: markt
Date: Sat Sep 15 22:18:08 2012
New Revision: 1385193

URL: http://svn.apache.org/viewvc?rev=1385193&view=rev
Log:
Start to expand the diagnostic information available from the Manager web application

Added:
    tomcat/trunk/webapps/manager/WEB-INF/jsp/connectorCiphers.jsp   (with props)
Modified:
    tomcat/trunk/java/org/apache/catalina/connector/mbeans-descriptors.xml
    tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java
    tomcat/trunk/java/org/apache/catalina/manager/LocalStrings.properties
    tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java
    tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java
    tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java
    tomcat/trunk/webapps/docs/changelog.xml
    tomcat/trunk/webapps/docs/manager-howto.xml

Modified: tomcat/trunk/java/org/apache/catalina/connector/mbeans-descriptors.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/mbeans-descriptors.xml?rev=1385193&r1=1385192&r2=1385193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/mbeans-descriptors.xml (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/mbeans-descriptors.xml Sat Sep 15 22:18:08
2012
@@ -44,6 +44,15 @@
           description="Allow disabling TRACE method"
                  type="boolean"/>
 
+    <attribute   name="ciphers"
+          description="Comma-separated list of requested cipher suites"
+                 type="java.lang.String"/>
+
+    <attribute   name="ciphersUsed"
+          description="Array of ciphers suites in use"
+                 type="[Ljava.lang.String;"
+            writeable="false"/>
+
     <attribute   name="className"
           description="Fully qualified class name of the managed object"
                  type="java.lang.String"

Modified: tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java?rev=1385193&r1=1385192&r2=1385193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java Sat Sep 15 22:18:08
2012
@@ -89,8 +89,12 @@ public final class HTMLManagerServlet ex
     protected static final String APPLICATION_MESSAGE = "message";
     protected static final String APPLICATION_ERROR = "error";
 
-    protected static final String sessionsListJspPath  = "/WEB-INF/jsp/sessionsList.jsp";
-    protected static final String sessionDetailJspPath = "/WEB-INF/jsp/sessionDetail.jsp";
+    protected static final String sessionsListJspPath  =
+            "/WEB-INF/jsp/sessionsList.jsp";
+    protected static final String sessionDetailJspPath =
+            "/WEB-INF/jsp/sessionDetail.jsp";
+    protected static final String connectorCiphersJspPath =
+            "/WEB-INF/jsp/connectorCiphers.jsp";
 
     static {
         URL_ENCODER = new URLEncoder();
@@ -147,6 +151,8 @@ public final class HTMLManagerServlet ex
                 message = smClient.getString("managerServlet.exception",
                         e.toString());
             }
+        } else if (command.equals("/sslConnectorCiphers")) {
+            sslConnectorCiphers(request, response);
         } else if (command.equals("/upload") || command.equals("/deploy") ||
                 command.equals("/reload") || command.equals("/undeploy") ||
                 command.equals("/expire") || command.equals("/start") ||
@@ -589,13 +595,18 @@ public final class HTMLManagerServlet ex
         writer.print(MessageFormat.format(UPLOAD_SECTION, args));
 
         // Diagnostics section
-        args = new Object[5];
+        args = new Object[9];
         args[0] = smClient.getString("htmlManagerServlet.diagnosticsTitle");
         args[1] = smClient.getString("htmlManagerServlet.diagnosticsLeak");
         args[2] = response.encodeURL(
                 request.getContextPath() + "/html/findleaks");
         args[3] = smClient.getString("htmlManagerServlet.diagnosticsLeakWarning");
         args[4] = smClient.getString("htmlManagerServlet.diagnosticsLeakButton");
+        args[5] = smClient.getString("htmlManagerServlet.diagnosticsSsl");
+        args[6] = response.encodeURL(
+                request.getContextPath() + "/html/sslConnectorCiphers");
+        args[7] = smClient.getString("htmlManagerServlet.diagnosticsSslConnectorCipherButton");
+        args[8] = smClient.getString("htmlManagerServlet.diagnosticsSslConnectorCipherText");
         writer.print(MessageFormat.format(DIAGNOSTICS_SECTION, args));
 
         // Server Header Section
@@ -769,6 +780,13 @@ public final class HTMLManagerServlet ex
     }
 
 
+    protected void sslConnectorCiphers(HttpServletRequest request,
+            HttpServletResponse response) throws ServletException, IOException {
+        request.setAttribute("cipherList", getConnectorCiphers());
+        getServletContext().getRequestDispatcher(
+                connectorCiphersJspPath).forward(request, response);
+    }
+
     /**
      * @see javax.servlet.Servlet#getServletInfo()
      */
@@ -1347,6 +1365,25 @@ public final class HTMLManagerServlet ex
         "</form>\n" +
         "</td>\n" +
         "</tr>\n" +
+        "<tr>\n" +
+        " <td colspan=\"2\" class=\"header-left\"><small>{5}</small></td>\n"
+
+        "</tr>\n" +
+        "<tr>\n" +
+        " <td colspan=\"2\">\n" +
+        "<form method=\"post\" action=\"{6}\">\n" +
+        "<table cellspacing=\"0\" cellpadding=\"3\">\n" +
+        "<tr>\n" +
+        " <td class=\"row-left\">\n" +
+        "  <input type=\"submit\" value=\"{7}\">\n" +
+        " </td>\n" +
+        " <td class=\"row-left\">\n" +
+        "  <small>{8}</small>\n" +
+        " </td>\n" +
+        "</tr>\n" +
+        "</table>\n" +
+        "</form>\n" +
+        "</td>\n" +
+        "</tr>\n" +
         "</table>\n" +
         "<br>";
 }

Modified: tomcat/trunk/java/org/apache/catalina/manager/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/LocalStrings.properties?rev=1385193&r1=1385192&r2=1385193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/catalina/manager/LocalStrings.properties Sat Sep 15 22:18:08
2012
@@ -48,6 +48,9 @@ htmlManagerServlet.deployWar=WAR or Dire
 htmlManagerServlet.diagnosticsLeak=Check to see if a web application has caused a memory
leak on stop, reload or undeploy
 htmlManagerServlet.diagnosticsLeakButton=Find leaks
 htmlManagerServlet.diagnosticsLeakWarning=This diagnostic check will trigger a full garbage
collection. Use it with extreme caution on production systems.
+htmlManagerServlet.diagnosticsSsl=SSL connector configuration diagnostics
+htmlManagerServlet.diagnosticsSslConnectorCipherButton=Connector ciphers
+htmlManagerServlet.diagnosticsSslConnectorCipherText=List the configured ciphers for each
connector
 htmlManagerServlet.diagnosticsTitle=Diagnostics
 htmlManagerServlet.findleaksList=\
   The following web applications were stopped (reloaded, undeployed), but their\n\
@@ -88,6 +91,7 @@ managerServlet.noManager=FAIL - No manag
 managerServlet.noSelf=FAIL - The manager can not reload, undeploy, stop, or undeploy itself
 managerServlet.noWrapper=Container has not called setWrapper() for this servlet
 managerServlet.notDeployed=FAIL - Context {0} is defined in server.xml and may not be undeployed
+managerServlet.notSslConnector=SSL is not enabled for this connector
 managerServlet.objectNameFail=FAIL - Unable to register object name [{0}] for Manager Servlet
 managerServlet.postCommand=FAIL - Tried to use command {0} via a GET request but POST is
required
 managerServlet.reloaded=OK - Reloaded application at context path {0}

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=1385193&r1=1385192&r2=1385193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/manager/ManagerServlet.java Sat Sep 15 22:18:08
2012
@@ -23,7 +23,11 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
 
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
@@ -44,8 +48,10 @@ import org.apache.catalina.Engine;
 import org.apache.catalina.Host;
 import org.apache.catalina.Manager;
 import org.apache.catalina.Server;
+import org.apache.catalina.Service;
 import org.apache.catalina.Session;
 import org.apache.catalina.Wrapper;
+import org.apache.catalina.connector.Connector;
 import org.apache.catalina.core.StandardHost;
 import org.apache.catalina.core.StandardServer;
 import org.apache.catalina.util.ContextName;
@@ -360,6 +366,8 @@ public class ManagerServlet extends Http
             undeploy(writer, cn, smClient);
         } else if (command.equals("/findleaks")) {
             findleaks(statusLine, writer, smClient);
+        } else if (command.equals("/sslConnectorCiphers")) {
+            sslConnectorCiphers(writer);
         } else {
             writer.println(smClient.getString("managerServlet.unknownCommand",
                     command));
@@ -524,6 +532,19 @@ public class ManagerServlet extends Http
     }
 
 
+    protected void sslConnectorCiphers(PrintWriter writer) {
+        writer.println("OK - Connector / SSL Cipher information");
+        Map<String,Set<String>> connectorCiphers = getConnectorCiphers();
+        for (Map.Entry<String,Set<String>> entry : connectorCiphers.entrySet())
{
+            writer.println(entry.getKey());
+            for (String cipher : entry.getValue()) {
+                writer.print("  ");
+                writer.println(cipher);
+            }
+        }
+    }
+
+
     /**
      * Store server configuration.
      *
@@ -1621,8 +1642,28 @@ public class ManagerServlet extends Http
             }
         }
         return result;
-
     }
 
 
+    protected Map<String,Set<String>> getConnectorCiphers() {
+        Map<String,Set<String>> result = new HashMap<>();
+
+        Engine e = (Engine) host.getParent();
+        Service s = e.getService();
+        Connector connectors[] = s.findConnectors();
+        for (Connector connector : connectors) {
+            Set<String> cipherList = new HashSet<>();
+            if (Boolean.TRUE.equals(connector.getProperty("SSLEnabled"))) {
+                String[] ciphersUsed =
+                        (String[]) connector.getProperty("ciphersUsed");
+                for (String cipherUsed : ciphersUsed) {
+                    cipherList.add(cipherUsed);
+                }
+            } else {
+                cipherList.add(sm.getString("managerServlet.notSslConnector"));
+            }
+            result.put(connector.toString(), cipherList);
+        }
+        return result;
+    }
 }

Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java?rev=1385193&r1=1385192&r2=1385193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11JsseProtocol.java Sat Sep 15
22:18:08 2012
@@ -50,6 +50,7 @@ public abstract class AbstractHttp11Jsse
 
     public String getCiphers() { return endpoint.getCiphers();}
     public void setCiphers(String s) { endpoint.setCiphers(s);}
+    public String[] getCiphersUsed() { return endpoint.getCiphersUsed();}
 
     public String getKeyAlias() { return endpoint.getKeyAlias();}
     public void setKeyAlias(String s ) { endpoint.setKeyAlias(s);}

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java?rev=1385193&r1=1385192&r2=1385193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProtocol.java Sat Sep 15 22:18:08
2012
@@ -115,7 +115,7 @@ public class Http11AprProtocol extends A
      */
     public String getSSLCipherSuite() { return ((AprEndpoint)endpoint).getSSLCipherSuite();
}
     public void setSSLCipherSuite(String SSLCipherSuite) { ((AprEndpoint)endpoint).setSSLCipherSuite(SSLCipherSuite);
}
-
+    public String[] getCiphersUsed() { return endpoint.getCiphersUsed();}
 
     /**
      * SSL honor cipher order.

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java?rev=1385193&r1=1385192&r2=1385193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Sat Sep 15 22:18:08
2012
@@ -811,6 +811,10 @@ public abstract class AbstractEndpoint {
             for (int i=0; i<ciphersarr.length; i++ ) ciphersarr[i] = t.nextToken();
         }
     }
+    /**
+     * @return  The ciphers in use by this Endpoint
+     */
+    public abstract String[] getCiphersUsed();
 
     private String keyAlias = null;
     public String getKeyAlias() { return keyAlias;}

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1385193&r1=1385192&r2=1385193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Sat Sep 15 22:18:08 2012
@@ -349,6 +349,14 @@ public class AprEndpoint extends Abstrac
     }
 
 
+    @Override
+    public String[] getCiphersUsed() {
+        // TODO : Investigate if it is possible to extract the current list of
+        //        available ciphers. Native code changes will be required.
+        return new String[] { getSSLCipherSuite() };
+    }
+
+
     // --------------------------------------------------------- Public Methods
 
     /**

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java?rev=1385193&r1=1385192&r2=1385193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java Sat Sep 15 22:18:08 2012
@@ -32,6 +32,7 @@ import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.ExceptionUtils;
 import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState;
+import org.apache.tomcat.util.net.jsse.JSSESocketFactory;
 
 
 /**
@@ -102,6 +103,16 @@ public class JIoEndpoint extends Abstrac
         }
     }
 
+
+    @Override
+    public String[] getCiphersUsed() {
+        if (serverSocketFactory instanceof JSSESocketFactory) {
+            return ((JSSESocketFactory) serverSocketFactory).getEnabledCiphers();
+        }
+        return new String[0];
+    }
+
+
     /*
      * Optional feature support.
      */

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1385193&r1=1385192&r2=1385193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Sat Sep 15 22:18:08 2012
@@ -408,6 +408,21 @@ public class NioEndpoint extends Abstrac
     }
 
 
+    @Override
+    public String[] getCiphersUsed() {
+        SSLContext sslContext = getSSLContext();
+        if (sslContext != null) {
+            SSLEngine engine = getSSLContext().createSSLEngine();
+            if (getCiphersArray().length > 0) {
+                engine.setEnabledCipherSuites(getCiphersArray());
+            }
+            return engine.getEnabledCipherSuites();
+        } else {
+            return new String[0];
+        }
+    }
+
+
     // --------------------------------------------------------- OOM Parachute Methods
 
     protected void checkParachute() {

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java?rev=1385193&r1=1385192&r2=1385193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java Sat Sep 15 22:18:08
2012
@@ -279,6 +279,10 @@ public class JSSESocketFactory implement
         return result;
     }
 
+    public String[] getEnabledCiphers() {
+        return enabledCiphers;
+    }
+
     /*
      * Gets the SSL server's keystore password.
      */

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1385193&r1=1385192&r2=1385193&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Sat Sep 15 22:18:08 2012
@@ -107,6 +107,15 @@
       </scode>
     </changelog>
   </subsection>
+  <subsection name="Web applications">
+    <changelog>
+      <add>
+        Extend the diagnostic information provided by the Manager web
+        application to include details of the configured SSL ciphers suites for
+        each connector. (markt)
+      </add>
+    </changelog>
+  </subsection>
   <subsection name="Tribes">
     <changelog>
       <scode>

Modified: tomcat/trunk/webapps/docs/manager-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/manager-howto.xml?rev=1385193&r1=1385192&r2=1385193&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/manager-howto.xml (original)
+++ tomcat/trunk/webapps/docs/manager-howto.xml Sat Sep 15 22:18:08 2012
@@ -881,6 +881,31 @@ has been reloaded several times, it may 
 
 </subsection>
 
+<subsection name="Connector SSL diagnostics">
+
+<source>
+http://localhost:8080/manager/text/sslConnectorCiphers
+</source>
+
+<p>The SSL Connector/Ciphers diagnostic lists the SSL ciphers that are currently
+configured for each connector. For BIO and NIO, the names of the individual
+cipher suites are listed. For APR, the value of SSLCipherSuite is returned.</p>
+
+<p>The response will ook something like this:</p>
+<source>
+OK - Connector / SSL Cipher information
+Connector[HTTP/1.1-8080]
+  SSL is not enabled for this connector
+Connector[HTTP/1.1-8443]
+  TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
+  TLS_DHE_RSA_WITH_AES_128_CBC_SHA
+  TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
+  TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
+  ...
+</source>
+
+</subsection>
+
 <subsection name="Server Status">
 
 <p>From this link , you can view information about the server.</p>

Added: tomcat/trunk/webapps/manager/WEB-INF/jsp/connectorCiphers.jsp
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/manager/WEB-INF/jsp/connectorCiphers.jsp?rev=1385193&view=auto
==============================================================================
--- tomcat/trunk/webapps/manager/WEB-INF/jsp/connectorCiphers.jsp (added)
+++ tomcat/trunk/webapps/manager/WEB-INF/jsp/connectorCiphers.jsp Sat Sep 15 22:18:08 2012
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<%--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+--%>
+<%@page session="false" contentType="text/html; charset=ISO-8859-1" %>
+<%@page import="java.util.Map" %>
+<%@page import="java.util.Map.Entry" %>
+<%@page import="java.util.Set" %>
+<!DOCTYPE html
+     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<% Map<String,Set<String>> cipherList = (Map<String,Set<String>>)
request.getAttribute("cipherList");
+%>
+<head>
+    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+    <meta http-equiv="pragma" content="no-cache"/><!-- HTTP 1.0 -->
+    <meta http-equiv="cache-control" content="no-cache,must-revalidate"/><!-- HTTP
1.1 -->
+    <meta http-equiv="expires" content="0"/><!-- 0 is an invalid value and should
be treated as 'now' -->
+    <meta http-equiv="content-language" content="en"/>
+    <meta name="copyright" content="copyright 2005-2012 the Apache Software Foundation"/>
+    <meta name="robots" content="noindex,nofollow,noarchive"/>
+    <title>Configured ciphers per Connector</title>
+</head>
+<body>
+<h1>Configured ciphers per Connector</h1>
+
+<table border="1" cellpadding="2" cellspacing="2" width="100%">
+    <thead>
+        <tr>
+            <th>Connector</th>
+            <th>Enabled Ciphers</th>
+        </tr>
+    </thead>
+    <tbody>
+        <%
+        for (Map.Entry<String, Set<String>> entry : cipherList.entrySet()) {
+        %>
+        <tr>
+            <td><%=entry.getKey()%></td>
+            <td>
+            <%
+            for (String cipher : entry.getValue()) {
+            %>
+                <p><%=cipher%></p>
+            <%
+            }
+            %>
+            </td>
+        </tr>
+        <%
+        }
+        %>
+    </tbody>
+</table>
+
+<form method="get" action="<%=request.getContextPath()%>/html">
+  <p style="text-align: center;">
+    <input type="submit" value="Return to main page" />
+  </p>
+</form>
+
+<%--div style="display: none;">
+<p>
+    <a href="http://validator.w3.org/check?uri=referer"><img
+        src="http://www.w3.org/Icons/valid-html401"
+        alt="Valid HTML 4.01!" height="31" width="88"></a>
+    <a href="http://validator.w3.org/check?uri=referer"><img
+        src="http://www.w3.org/Icons/valid-xhtml10"
+        alt="Valid XHTML 1.0!" height="31" width="88" /></a>
+    <a href="http://validator.w3.org/check?uri=referer"><img
+        src="http://www.w3.org/Icons/valid-xhtml11"
+        alt="Valid XHTML 1.1!" height="31" width="88" /></a>
+</p>
+</div--%>
+
+</body>
+</html>

Propchange: tomcat/trunk/webapps/manager/WEB-INF/jsp/connectorCiphers.jsp
------------------------------------------------------------------------------
    svn:eol-style = native



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


Mime
View raw message