2013/12/3 at.silk <at.s...@everis.com>:
> Hi,
>
> I contact you to talk about an exception we receive in a Tomcat class. Few 
> days ago we get an error in an application integrated with Tomcat. We have 
> tried to get information about it but we don't find any solution, so we would 
> like to know if you are aware about this issue.
>
> First we describe our scenario:
> 1. User logs in the portal and remain static for more than 30 minutes (30 
> minutes is session expiration time).
> 2. Afterwards, he refreshes the webpage and session has been expired.
> 3. During the page reloading, an error occurs while executing the 
> "parseSessionSslId" method because the "SSLSupport.SESSION_ID_KEY" is empty.
> 4. A blank page is displayed because the error is not caught.
>
> The exception produced during step 3 belongs to this section:
>  [org\apache\catalina\connector\CoyoteAdapter.java]
>       Method parseSessionSslId:
>                 
> request.setRequestedSessionId(request.getAttribute(SSLSupport.SESSION_ID_KEY).toString());
>                 request.setRequestedSessionSSL(true);
>
> This is our context:
> - Tomcat version: 7.0.25
> - OS: Linux distribution
> - Liferay 6.1GA1 portal integrated with Tomcat
> - We don't negotiate user session by the sessionid with the cookie but with 
> the certificate.
>
> Our server.xml configuration file contains the following connectors:
> <Connector URIEncoding="UTF-8" port="8010" protocol="AJP/1.3" 
> redirectPort="8443" scheme="https" secure="true" />
> <Connector URIEncoding="UTF-8" port="8443" protocol="HTTP/1.1" 
> SSLEnabled="true" clientAuth="false" keystoreFile="xxx" keystorePass="yyy" 
> keystoreType="PKCS12" maxThreads="150" scheme="https" secure="true" 
> sslProtocol="TLS"/>

1. Is Tomcat accessed via AJP or HTTPS ?

2. What is in front of Tomcat? An Apache HTTPD server? How mod_jk is
configured there? Is Apache HTTPD accessed via HTTPS?  Is mod_jk
configured to pass SSL_SESSION_ID to Tomcat?

http://tomcat.apache.org/connectors-doc/reference/apache.html

SSLOptions +StdEnvVars
JkExtractSSL On

3. How <session-config> is configured in WEB-INF/web.xml of your web
applications
and in the shared $CATALINA_BASE/conf/web.xml file?

I expect that you have <tracking-mode> configured in one of those files.

Are you able to identify what web application is being requested here?
(E.g. by looking into the access log)?

> Conclusion:
> The exception is raised when the session id is empty due to we have an 
> expired session. We have compiled this code section with a try catch and now 
> our application does not receive the error, and we can see our page 
> displayed, obviously with session expired.

4. A full stacktrace = ?

> Do you think this could be due to some local configuration or is it a general 
> issue?
> Is there the possibility to contemplate this case to be protected when 
> sessionId is null?
>

If an application is configured to use ssl session as its session
identifier, and no ssl session is available, how do you expect it to
behave?  I looks that one adds a try/catch there, the application will
create a new session with every request.  Are you OK with that?

5. I do not see how 30 minutes can come into a play here. With my
guesses above an application should have failed with the first
request.

Is some form of single-sign-on configured between applications? Is 30
minutes the expiration time from single-sign-on (and not from webapp's
session)?

Best regards,
Konstantin Kolinko

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

Reply via email to