From: markt Date: Thu, 8 Sep 2011 13:43:02 +0000 (+0000) Subject: Tomcat 6 introduced a custom attribute for SSL session ID. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=ebaa8c1145d0ca21e562cfb3a5d98ab4e12cf445;p=tomcat7.0 Tomcat 6 introduced a custom attribute for SSL session ID. Servlet 3 introduced a standard attribute for this. Support both, deprecating the custom attribute. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1166686 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/Globals.java b/java/org/apache/catalina/Globals.java index 124378ce2..fc98adab7 100644 --- a/java/org/apache/catalina/Globals.java +++ b/java/org/apache/catalina/Globals.java @@ -98,9 +98,15 @@ public final class Globals { * for this SSL connection (as an object of type java.lang.String). */ public static final String SSL_SESSION_ID_ATTR = + "javax.servlet.request.ssl_session_id"; + /** + * Tomcat specific attribute as used in Tomcat 6. + * @deprecated + */ + @Deprecated + public static final String SSL_SESSION_ID_TOMCAT_ATTR = "javax.servlet.request.ssl_session"; - /** * The request attribute key for the session manager. * This one is a Tomcat extension to the Servlet spec. diff --git a/java/org/apache/catalina/connector/Request.java b/java/org/apache/catalina/connector/Request.java index 87ce69009..33ea78178 100644 --- a/java/org/apache/catalina/connector/Request.java +++ b/java/org/apache/catalina/connector/Request.java @@ -965,6 +965,7 @@ public class Request attr = coyoteRequest.getAttribute(Globals.SSL_SESSION_ID_ATTR); if(attr != null) { attributes.put(Globals.SSL_SESSION_ID_ATTR, attr); + attributes.put(Globals.SSL_SESSION_ID_TOMCAT_ATTR, attr); } attr = coyoteRequest.getAttribute(Globals.SSL_SESSION_MGR_ATTR); if(attr != null) { @@ -985,6 +986,7 @@ public class Request Globals.CIPHER_SUITE_ATTR.equals(name) || Globals.KEY_SIZE_ATTR.equals(name) || Globals.SSL_SESSION_ID_ATTR.equals(name) || + Globals.SSL_SESSION_ID_TOMCAT_ATTR.equals(name) || Globals.SSL_SESSION_MGR_ATTR.equals(name); } @@ -1003,6 +1005,8 @@ public class Request *
  • {@link Globals#CIPHER_SUITE_ATTR} (SSL connections only)
  • *
  • {@link Globals#KEY_SIZE_ATTR} (SSL connections only)
  • *
  • {@link Globals#SSL_SESSION_ID_ATTR} (SSL connections only)
  • + *
  • {@link Globals#SSL_SESSION_ID_TOMCAT_ATTR} (SSL connections only) + *
  • *
  • {@link Globals#SSL_SESSION_MGR_ATTR} (SSL connections only)
  • * * The underlying connector may also expose request attributes. These all diff --git a/java/org/apache/catalina/valves/SSLValve.java b/java/org/apache/catalina/valves/SSLValve.java index 4ef7d315a..84d8cc51e 100644 --- a/java/org/apache/catalina/valves/SSLValve.java +++ b/java/org/apache/catalina/valves/SSLValve.java @@ -125,6 +125,7 @@ public class SSLValve extends ValveBase { strcert0 = mygetHeader(request, "ssl_session_id"); 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"); if (strcert0 != null) { diff --git a/java/org/apache/tomcat/util/net/SSLSupport.java b/java/org/apache/tomcat/util/net/SSLSupport.java index e569ca530..f28db6833 100644 --- a/java/org/apache/tomcat/util/net/SSLSupport.java +++ b/java/org/apache/tomcat/util/net/SSLSupport.java @@ -45,7 +45,7 @@ public interface SSLSupport { * This one is a Tomcat extension to the Servlet spec. */ public static final String SESSION_ID_KEY = - "javax.servlet.request.ssl_session"; + "javax.servlet.request.ssl_session_id"; /** * The request attribute key for the session manager. diff --git a/webapps/docs/ssl-howto.xml b/webapps/docs/ssl-howto.xml index 8451b1ac0..7d74d2226 100644 --- a/webapps/docs/ssl-howto.xml +++ b/webapps/docs/ssl-howto.xml @@ -582,7 +582,7 @@ public class SessionTrackingModeListener implements ServletContextListener {

    To access the SSL session ID from the request, use:
    - String sslID = (String)request.getAttribute("javax.servlet.request.ssl_session"); + String sslID = (String)request.getAttribute("javax.servlet.request.ssl_session_id");
    For additional discussion on this area, please see