Chris, To answer your question, Chris, I do a post to j_security_check. Actually, my "login" link really just does a GET for a secured resource and Tomcat serves up a standard j_security_check form. I only post j_username and j_password, so don't expect max size to be a problem. I was not able to reproduce the problem this morning, but after pouring through the logs I found an exception that shed some light on the problem.
I saw a "connection already closed" message from one of my DAOs and I found a SQLExceptions from MOD_JK. It looks like on of my DAOs left a transaction open and the login error is really just fallout from that. I have a TODO to replace my transaction logic with Spring transactions. I'll see if the problem goes away after I do that. Here is the error: ERROR | 2007-12-13 20:53:36,085 [TP-Processor11] org.apache.catalina.core.ContainerBase.[Catalina].[www.homesassn.com].[/] - Exception performing authentication java.sql.SQLException: Communications link failure during commit(). Transaction resolution unknown. at com.mysql.jdbc.Connection.commit(Connection.java:2171) at org.apache.catalina.realm.JDBCRealm.getPassword(JDBCRealm.java :568) at org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java :399) at org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java :347) at org.apache.catalina.authenticator.FormAuthenticator.authenticate( FormAuthenticator.java:257) at org.apache.catalina.authenticator.AuthenticatorBase.invoke( AuthenticatorBase.java:416) at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke( ErrorReportValve.java:105) at org.apache.catalina.valves.FastCommonAccessLogValve.invoke( FastCommonAccessLogValve.java:495) at org.apache.catalina.valves.AccessLogValve.invoke( AccessLogValve.java:541) at org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service( CoyoteAdapter.java:148) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java :199) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java :282) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767) at org.apache.jk.common.ChannelSocket.processConnection( ChannelSocket.java:697) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt( ChannelSocket.java:889) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run( ThreadPool.java:684) at java.lang.Thread.run(Thread.java:619) The realm is nothing unusual: <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99" driverName="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/[xxxxxxxx]" connectionName="[xxxxxxxx]" connectionPassword="[xxxxxxxx]" userTable="USERS" userNameCol="SIGNON_ID" userCredCol="CREDENTIAL" userRoleTable="ENTITLEMENTS" roleNameCol="ENTITLEMENT_NAME" /> Thanks, Steve Chris wrote: > Steve, > >> Steve Mitchell wrote: >> I'm using a JDBC realm with a site and sometimes when you try to >> access a secured resource you get a blank page after logging in. You >> have to refresh the page to get the secured resource to appear. After >> that everything works great. > >Does it happen to be a POST request that initiates the login? Tomcat has >a certain maximum size (can't remember off the top of my head) for POST >requests that it will properly re-process after a login. > >> This appears to only happen on the first login. > >First login when? After a server restart? Ever on a given browser? >First login for whom? The first user to hit the server at all after a >restart, or the first time a particular user logs in from anywhere? > >- -chris