On Mon, 2012-01-23 at 10:21 -0800, removeps-c...@yahoo.com wrote: > Initially I thought that my RootJDBCRealm might be the problem, but how can > that be?
> RootJDBCRealm extends Tomcat's own JDBCRealm. It overrides authenticate to > call super.authenticate and if there are 3 failures (in that > super.authenticate returns null), then it locks out the user. Sounds a lot like the LockOutRealm. https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html#LockOutRealm Any reason you opted not to use it? Dan > So could the user of RootJDBCRealm still be a problem? Thanks. > > --- On Mon, 1/23/12, Mark Thomas <ma...@apache.org> wrote: > > > From: Mark Thomas <ma...@apache.org> > > Subject: Re: Connection.close() has already been called during login > > To: "Tomcat Users List" <users@tomcat.apache.org> > > Date: Monday, January 23, 2012, 12:49 AM > > On 23/01/2012 03:49, removeps-c...@yahoo.com > > wrote: > > > Am running Tomcat 7 and see this in the logs: > > > > > > SEVERE: Exception performing authentication > > > > > com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: > > Connection.close() has already been called. Invalid > > operation in this state. > > > at > > sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > > Method) > > > at > > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > > > at > > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > > > at > > java.lang.reflect.Constructor.newInstance(Constructor.java:513) > > > at > > com.mysql.jdbc.Util.handleNewInstance(Util.java:406) > > > at > > com.mysql.jdbc.Util.getInstance(Util.java:381) > > > at > > com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984) > > > at > > com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) > > > at > > com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) > > > at > > com.mysql.jdbc.ConnectionImpl.getMutex(ConnectionImpl.java:3018) > > > at > > com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1512) > > > at > > org.apache.catalina.realm.JDBCRealm.getPassword(JDBCRealm.java:579) > > > at > > org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java:408) > > > at > > org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java:355) > > > at > > pacific.tomcat.RootJDBCRealm.authenticate(SourceFile:71) > > > > The above line is key. You are not using Tomcat's > > JDBCRealm. > > > > > at > > org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:295) > > > at > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:450) > > > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) > > > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) > > > at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) > > > at > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) > > > at > > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) > > > at > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539) > > > at > > org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:1773) > > > at > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > > > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > > > at > > java.lang.Thread.run(Thread.java:662) > > > > > > > > > could the reason be ROOT/META-INF/context.xml which > > says > > > > > > <Context> > > > > > > <Realm > > className="pacific.tomcat.RootJDBCRealm" > > > > > driverName="pacific.driver.PacificMysqlDriver" > > > > > connectionName="auth" connectionPassword="..." > > > > > connectionURL="pacific@jdbc:mysql://localhost:3306" > > > userTable="user" > > userNameCol="username" userCredCol="password" > > > > > userRoleTable="user_role" roleNameCol="rolename" > > > digest="SHA1"/> > > > > > > That is, should I be using a datasource realm > > instead? > > > > Yes. > > > > Mark > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > > For additional commands, e-mail: users-h...@tomcat.apache.org > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org >