Author: remm
Date: Fri Jun 26 08:45:09 2015
New Revision: 1687715

URL: http://svn.apache.org/r1687715
Log:
Port r1607309 and followups to add header configuration for the SSLValve.

Modified:
    tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/SSLValve.java
    tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
    tomcat/tc7.0.x/trunk/webapps/docs/config/valve.xml

Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/SSLValve.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/SSLValve.java?rev=1687715&r1=1687714&r2=1687715&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/SSLValve.java 
(original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/valves/SSLValve.java Fri Jun 
26 08:45:09 2015
@@ -64,6 +64,10 @@ public class SSLValve extends ValveBase
 
     private static final Log log = LogFactory.getLog(SSLValve.class);
 
+    private String sslClientCertHeader = "ssl_client_cert";
+    private String sslCipherHeader = "ssl_cipher";
+    private String sslSessionIdHeader = "ssl_session_id";
+    private String sslCipherUserKeySizeHeader = "ssl_cipher_usekeysize";
 
     //------------------------------------------------------ Constructor
     public SSLValve() {
@@ -71,6 +75,38 @@ public class SSLValve extends ValveBase
     }
 
 
+    public String getSslClientCertHeader() {
+        return sslClientCertHeader;
+    }
+
+    public void setSslClientCertHeader(String sslClientCertHeader) {
+        this.sslClientCertHeader = sslClientCertHeader;
+    }
+
+    public String getSslCipherHeader() {
+        return sslCipherHeader;
+    }
+
+    public void setSslCipherHeader(String sslCipherHeader) {
+        this.sslCipherHeader = sslCipherHeader;
+    }
+
+    public String getSslSessionIdHeader() {
+        return sslSessionIdHeader;
+    }
+
+    public void setSslSessionIdHeader(String sslSessionIdHeader) {
+        this.sslSessionIdHeader = sslSessionIdHeader;
+    }
+
+    public String getSslCipherUserKeySizeHeader() {
+        return sslCipherUserKeySizeHeader;
+    }
+
+    public void setSslCipherUserKeySizeHeader(String 
sslCipherUserKeySizeHeader) {
+        this.sslCipherUserKeySizeHeader = sslCipherUserKeySizeHeader;
+    }
+
 
     public String mygetHeader(Request request, String header) {
         String strcert0 = request.getHeader(header);
@@ -88,7 +124,7 @@ public class SSLValve extends ValveBase
         throws IOException, ServletException {
 
         /* mod_header converts the '\n' into ' ' so we have to rebuild the 
client certificate */
-        String strcert0 = mygetHeader(request, "ssl_client_cert");
+        String strcert0 = mygetHeader(request, sslClientCertHeader);
         if (strcert0 != null && strcert0.length()>28) {
             String strcert1 = strcert0.replace(' ', '\n');
             String strcert2 = strcert1.substring(28, strcert1.length()-26);
@@ -119,16 +155,16 @@ public class SSLValve extends ValveBase
             }
             request.setAttribute(Globals.CERTIFICATES_ATTR, jsseCerts);
         }
-        strcert0 = mygetHeader(request, "ssl_cipher");
+        strcert0 = mygetHeader(request, sslCipherHeader);
         if (strcert0 != null) {
             request.setAttribute(Globals.CIPHER_SUITE_ATTR, strcert0);
         }
-        strcert0 = mygetHeader(request, "ssl_session_id");
+        strcert0 = mygetHeader(request, sslSessionIdHeader);
         if (strcert0 != null) {
             request.setAttribute(Globals.SSL_SESSION_ID_ATTR, strcert0);
             request.setAttribute(Globals.SSL_SESSION_ID_TOMCAT_ATTR, strcert0);
         }
-        strcert0 = mygetHeader(request, "ssl_cipher_usekeysize");
+        strcert0 = mygetHeader(request, sslCipherUserKeySizeHeader);
         if (strcert0 != null) {
             request.setAttribute(Globals.KEY_SIZE_ATTR,
                     Integer.valueOf(strcert0));

Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1687715&r1=1687714&r2=1687715&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Fri Jun 26 08:45:09 2015
@@ -107,6 +107,9 @@
         <bug>57700</bug>: Ensure that Container event
         <code>ADD_CHILD_EVENT</code> will be sent in all cases. (violetagg)
       </fix>
+      <fix>
+        Add configuration fields for header names in SSLValve. (remm)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Coyote">

Modified: tomcat/tc7.0.x/trunk/webapps/docs/config/valve.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/config/valve.xml?rev=1687715&r1=1687714&r2=1687715&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/config/valve.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/config/valve.xml Fri Jun 26 08:45:09 2015
@@ -876,6 +876,30 @@
         </p>
       </attribute>
 
+      <attribute name="sslClientCertHeader" required="false">
+        <p>Allows setting a custom name for the ssl_client_cert header.
+        If not specified, the default of <code>ssl_client_cert</code> is
+        used.</p>
+      </attribute>
+
+      <attribute name="sslCipherHeader" required="false">
+        <p>Allows setting a custom name for the ssl_cipher header.
+        If not specified, the default of <code>ssl_cipher</code> is
+        used.</p>
+      </attribute>
+
+      <attribute name="sslSessionIdHeader" required="false">
+        <p>Allows setting a custom name for the ssl_session_id header.
+        If not specified, the default of <code>ssl_session_id</code> is
+        used.</p>
+      </attribute>
+
+      <attribute name="sslCipherUserKeySizeHeader" required="false">
+        <p>Allows setting a custom name for the ssl_cipher_usekeysize header.
+        If not specified, the default of <code>ssl_cipher_usekeysize</code> is
+        used.</p>
+      </attribute>
+
     </attributes>
 
   </subsection>



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

Reply via email to