You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Raimee <ra...@sympatico.ca> on 2001/08/29 22:20:24 UTC

JDBCRealm with Catalina + Apache

I am having trouble setting up the following

JDBCRealm with Tomcat-4.0-b7 and Apache 1.3 on Windows 2000. I have not
defined a Stand-Alone service, I am
only interested in the Apache Connector.

The problem: the logon credentials are not being accepted even though
they are correct.
(I am using the suggested database configuration - table names,columns
etc... and I am able to establish
connections and perform queries outside of Tomcat. Tomcat is also able
to make the connection and appropriate queries,
although the prepared statement issued to retrieve the password is
missing the userName info - ie.still ? )

I have also seen a problem releasing db connections when running the
shutdown script - see below.

server.xml
=======
<Server port="8005" shutdown="SHUTDOWN" debug="0">
  <!-- Apache-Connector Service -->
  <Service name="Tomcat-Apache">
    <Connector
className="org.apache.catalina.connector.warp.WarpConnector"
     port="8008" minProcessors="5" maxProcessors="75"
     enableLookups="true"
     acceptCount="10" debug="0"/>

    <Engine className="org.apache.catalina.connector.warp.WarpEngine"
     name="Apache" defaultHost="elderlyone" debug="0" appBase="webapps">

      <Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"

              driverName="COM.ibm.db2.jdbc.app.DB2Driver"
              connectionURL="jdbc:db2:WEBAPPDB"
              userTable="users" userNameCol="user_name"
userCredCol="user_pass"
              userRoleTable="user_roles" roleNameCol="role_name" />

      <!-- Global logger unless overridden at lower levels -->
      <Logger className="org.apache.catalina.logger.FileLogger"
              prefix="catalina_log." suffix=".txt"
              timestamp="true"/>

      <Host name="elderlyone" debug="0" appBase="webapps"
unpackWARs="true">
        <Valve
className="org.apache.catalina.valves.RequestDumperValve"/>
        <Valve
className="org.apache.catalina.authenticator.SingleSignOn"
                   debug="0"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve"
                 directory="logs"  prefix="elderlyone_access_log."
suffix=".txt"
                 pattern="common"/>
        <Logger className="org.apache.catalina.logger.FileLogger"
                 directory="logs"  prefix="elderlyone_cmn_context_log."
suffix=".txt"
                 timestamp="true"/>

        <!-- cntx1 Context -->
        <Context path="/cntx1" docBase="cntx1" debug="0"
                 reloadable="true">
          <Valve
className="org.apache.catalina.valves.RequestDumperValve"/>
          <Logger className="org.apache.catalina.logger.FileLogger"
                     prefix="context_cntx1_log." suffix=".txt"
           timestamp="true"/>
        </Context>
      </Host>
    </Engine>
  </Service>
</Server>

My apache httpd.conf:
===============
WebAppConnection conn      warp  elderlyone:8008
WebAppDeploy       cntx1 conn  /cntx1


cntx1 web.xml
========
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

  <!-- Define a Security Constraint on this Application -->
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>cntx1 WEB.XML RESOURCE NAME</web-resource-name>

      <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>admin</role-name>
    </auth-constraint>
  </security-constraint>

  <!-- Define the Login Configuration for this Application -->
  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>cntx1 REALM</realm-name>
  </login-config>

</web-app>

----------------------------------------------------------------------
log output:
context_wtc_log.txt
=============
2001-08-29 15:55:42 WebappLoader[/wtc]: Deploying class repositories to
work directory G:\Tomcat\jakarta-tomcat-4.0-b7\work\elderlyone\wtc
2001-08-29 15:55:42 WebappLoader[/wtc]: Reloading checks are enabled for
this Context
2001-08-29 15:55:42 StandardManager[/wtc]: Seeding random number
generator class java.security.SecureRandom
2001-08-29 15:55:42 StandardManager[/wtc]: Seeding of random number
generator has been completed
2001-08-29 15:55:42 ContextConfig[/wtc]: Configured an authenticator for
method BASIC
2001-08-29 15:55:42 StandardWrapper[/wtc:default]: Loading container
servlet default
2001-08-29 15:55:42 default: init
2001-08-29 15:55:42 StandardWrapper[/wtc:invoker]: Loading container
servlet invoker
2001-08-29 15:55:42 invoker: init
2001-08-29 15:55:42 StandardWrapper[/wtc:jsp]: Using Jasper classloader
for servlet jsp
2001-08-29 15:55:42 jsp: init
2001-08-29 15:55:43 StandardWrapper[/wtc:ssi]: Loading container servlet
ssi
2001-08-29 15:55:43 ssi: init
2001-08-29 15:55:43 StandardWrapper[/wtc:cgi]: Loading container servlet
cgi
2001-08-29 15:55:43 cgi: init
2001-08-29 15:55:43 cgi: init: loglevel set to 6
2001-08-29 15:56:20 RequestDumperValve[/wtc]: REQUEST URI       =/wtc/
2001-08-29 15:56:20 RequestDumperValve[/wtc]:           authType=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:  characterEncoding=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:      contentLength=-1
2001-08-29 15:56:20 RequestDumperValve[/wtc]:        contentType=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:        contextPath=/wtc
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
header=accept-language=en
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
header=connection=Keep-Alive
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
header=accept=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
image/png, */*
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
header=host=elderlyone
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
header=accept-charset=iso-8859-1,*,utf-8
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
header=accept-encoding=gzip
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
header=user-agent=Mozilla/4.76 [en] (Windows NT 5.0; U)
2001-08-29 15:56:20 RequestDumperValve[/wtc]:             locale=en
2001-08-29 15:56:20 RequestDumperValve[/wtc]:             method=GET
2001-08-29 15:56:20 RequestDumperValve[/wtc]:           pathInfo=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
protocol=HTTP/1.0
2001-08-29 15:56:20 RequestDumperValve[/wtc]:        queryString=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
remoteAddr=64.231.78.150
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
remoteHost=64.231.78.150
2001-08-29 15:56:20 RequestDumperValve[/wtc]:         remoteUser=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]: requestedSessionId=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:             scheme=http
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
serverName=elderlyone
2001-08-29 15:56:20 RequestDumperValve[/wtc]:         serverPort=80
2001-08-29 15:56:20 RequestDumperValve[/wtc]:        servletPath=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:           isSecure=false
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
---------------------------------------------------------------
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
---------------------------------------------------------------
2001-08-29 15:56:20 RequestDumperValve[/wtc]:           authType=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:      contentLength=-1
2001-08-29 15:56:20 RequestDumperValve[/wtc]:        contentType=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
header=WWW-Authenticate=Basic realm="WTC WEB.XML REALM NAME"
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
message=Unauthorized
2001-08-29 15:56:20 RequestDumperValve[/wtc]:         remoteUser=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:             status=401
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
===============================================================
2001-08-29 15:56:23 RequestDumperValve[/wtc]: REQUEST URI       =/wtc/
2001-08-29 15:56:23 RequestDumperValve[/wtc]:           authType=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:  characterEncoding=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:      contentLength=-1
2001-08-29 15:56:23 RequestDumperValve[/wtc]:        contentType=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:        contextPath=/wtc
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=accept-language=en
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=connection=Keep-Alive
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=accept=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
image/png, */*
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=authorization=Basic cmFpbWVlOnJhaW1lZQ==
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=host=elderlyone
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=accept-charset=iso-8859-1,*,utf-8
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=accept-encoding=gzip
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=user-agent=Mozilla/4.76 [en] (Windows NT 5.0; U)
2001-08-29 15:56:23 RequestDumperValve[/wtc]:             locale=en
2001-08-29 15:56:23 RequestDumperValve[/wtc]:             method=GET
2001-08-29 15:56:23 RequestDumperValve[/wtc]:           pathInfo=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
protocol=HTTP/1.0
2001-08-29 15:56:23 RequestDumperValve[/wtc]:        queryString=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
remoteAddr=64.231.78.150
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
remoteHost=64.231.78.150
2001-08-29 15:56:23 RequestDumperValve[/wtc]:         remoteUser=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]: requestedSessionId=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:             scheme=http
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
serverName=elderlyone
2001-08-29 15:56:23 RequestDumperValve[/wtc]:         serverPort=80
2001-08-29 15:56:23 RequestDumperValve[/wtc]:        servletPath=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:           isSecure=false
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
---------------------------------------------------------------
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
---------------------------------------------------------------
2001-08-29 15:56:23 RequestDumperValve[/wtc]:           authType=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:      contentLength=-1
2001-08-29 15:56:23 RequestDumperValve[/wtc]:        contentType=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=WWW-Authenticate=Basic realm="WTC WEB.XML REALM NAME"
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
message=Unauthorized
2001-08-29 15:56:23 RequestDumperValve[/wtc]:         remoteUser=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:             status=401
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
===============================================================


--------------

The RequestDumperValve reveals that the remoteUser field is null both
during the first request for the restricted URL
and during the second request after I submitted the credentials through
the browser.

Can the Apache Connector run without defing an http stand-alone
connector?

There also appears to be a problem releasing database connections when
exiting Tomcat
using the shutdown.bat script:

Here is the catalina_log.txt
2001-08-29 16:08:59 [org.apache.catalina.connector.warp.WarpConnector]
Connection from elderlyone/64.231.78.150:3773 to
elderlyone/64.231.78.150:8008
2001-08-29 16:08:59
[org.apache.catalina.connector.warp.WarpConfigurationHandler] Filter
mappings (0)
2001-08-29 16:09:16 WarpEngine[Apache]: Mapping request
2001-08-29 16:09:20 WarpEngine[Apache]: Mapping request

<up to here ok, first two lines confirm startup of Apache, next two
reflect simple requests >

<Shutdown apache>
2001-08-29 16:09:43 [org.apache.catalina.connector.warp.WarpConnection]
Exception on socket
java.io.IOException: Premature packet header end
 at
org.apache.catalina.connector.warp.WarpConnection.recv(WarpConnection.java:236)

 at
org.apache.catalina.connector.warp.WarpRequestHandler.handle(WarpRequestHandler.java:110)

 at
org.apache.catalina.connector.warp.WarpConnection.run(WarpConnection.java:194)

 at java.lang.Thread.run(Thread.java:484)

2001-08-29 16:09:56 [org.apache.catalina.connector.warp.WarpConnector]
Error accepting requests
java.net.SocketException: socket closed
 at java.net.PlainSocketImpl.socketAccept(Native Method)
 at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:421)
 at java.net.ServerSocket.implAccept(ServerSocket.java:243)
 at java.net.ServerSocket.accept(ServerSocket.java:222)
 at
org.apache.catalina.connector.warp.WarpConnector.run(WarpConnector.java:554)

 at java.lang.Thread.run(Thread.java:484)

<Shutdown Catalina - shutdown.bat>
2001-08-29 16:09:56 JDBCRealm[Apache]: Exception closing database
connection
COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] CLI0116E  Invalid
transaction state. SQLSTATE=25000
 at
COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(SQLExceptionGenerator.java:174)

 at
COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_return_code(SQLExceptionGenerator.java:419)

 at COM.ibm.db2.jdbc.app.DB2Connection.close2(DB2Connection.java:694)
 at COM.ibm.db2.jdbc.app.DB2Connection.close(DB2Connection.java:667)
 at org.apache.catalina.realm.JDBCRealm.close(JDBCRealm.java:439)
 at org.apache.catalina.realm.JDBCRealm.stop(JDBCRealm.java:633)
 at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1178)

 at
org.apache.catalina.core.StandardService.stop(StandardService.java:415)
 at
org.apache.catalina.core.StandardServer.stop(StandardServer.java:502)
 at org.apache.catalina.startup.Catalina.start(Catalina.java:756)
 at org.apache.catalina.startup.Catalina.execute(Catalina.java:657)
 at org.apache.catalina.startup.Catalina.process(Catalina.java:178)
 at java.lang.reflect.Method.invoke(Native Method)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:202)

I don't believe that my first problem is related to this, but it should
be of interest.

Any suggestions welcome...Thanks.


Re: loadbalancing with tomcat 3.2 , just an explication !

Posted by simon <si...@lexues.co.jp>.
Hello,

First of all, I haven't tried this but from reading the manual this is how I think it should work.

1. You define your 5 'ajp13' workers for PC1 - PC5
2. You define 2 'lb' workers:one for GroupA (which balances PC1, PC2, PC3) and one for GroupB (which balances PC4,PC5)
3. You then add JkMount directives to your httpd.conf file that load certain contexts to each group
JkMount /groupa/ GroupA
JkMount /groupb/ GroupB

I would be very interested to hear if this works or not.  I'd also be very interested to hear from anyone who knows what they are
talking about on this subject :o)


----- Original Message -----
From: "Bekkali Hatim - Soamaï" <hb...@soamai.com>
To: <to...@jakarta.apache.org>
Sent: Thursday, August 30, 2001 7:28 PM
Subject: loadbalancing with tomcat 3.2 , just an explication !


> hy all
> i read the documentation :
> http://jakarta.apache.org/tomcat/tomcat-3.2-doc/Tomcat-Workers-HowTo.html
>
> i juste  want to know one thing :
> i have two groups of servers ( redhat 6.2 and tomcat 3.2 ,apache 1.3.20 ) in
> the same network
> Group A
> with 3 servers PC1 PC2 PC3
> Group B
> with 2 servers PC4 PC5
> i want to make loadbalancing between PC 1 PC2 PC3 only
> and loadbalancing between PC4 PC5 only
> 1- It is possible ? and how ?how can i verify that the multiple tomcat
> connect between them ?
> 2-Loadbalancing preserve the session id ? if tomcat in PC2 created a
> jsessionid for a specifc web request , the next request from the same client
> will go to the same PC2 who have an opened sessionid for this client ?
>
> Thank you
>
>


loadbalancing with tomcat 3.2 , just an explication !

Posted by Bekkali Hatim - Soamaï <hb...@soamai.com>.
hy all
i read the documentation :
http://jakarta.apache.org/tomcat/tomcat-3.2-doc/Tomcat-Workers-HowTo.html

i juste  want to know one thing :
i have two groups of servers ( redhat 6.2 and tomcat 3.2 ,apache 1.3.20 ) in 
the same network
Group A 
with 3 servers PC1 PC2 PC3
Group B
with 2 servers PC4 PC5
i want to make loadbalancing between PC 1 PC2 PC3 only
and loadbalancing between PC4 PC5 only 
1- It is possible ? and how ?how can i verify that the multiple tomcat 
connect between them ?
2-Loadbalancing preserve the session id ? if tomcat in PC2 created a 
jsessionid for a specifc web request , the next request from the same client 
will go to the same PC2 who have an opened sessionid for this client ?

Thank you 


Re: JDBCRealm with Catalina + Apache

Posted by Raimee <ra...@sympatico.ca>.
Ok, I'll try anything once, but where does the
<security-role>admin</security-role>
tag go?

Christoph Rooms wrote:

> Hi,
>
> Try to change this in your web.xml :
>
>   <security-constraint>
>     <web-resource-collection>
>       <web-resource-name>cntx1 WEB.XML RESOURCE NAME</web-resource-name>
>       <url-pattern>/*</url-pattern>
> -->     <http-method>GET</http-method>
> -->     <http-method>POST</http-method>
>     </web-resource-collection>
>     <auth-constraint>
>        <role-name>admin</role-name>
>     </auth-constraint>
>   ...
>   </security-constraint>
> -->  <security-role>admin</security-role>
>
> -----Original Message-----
> From: Raimee [mailto:raimee@sympatico.ca]
> Sent: woensdag 29 augustus 2001 22:20
> To: tomcat-user@jakarta.apache.org
> Subject: JDBCRealm with Catalina + Apache
>
> I am having trouble setting up the following
>
> JDBCRealm with Tomcat-4.0-b7 and Apache 1.3 on Windows 2000. I have not
> defined a Stand-Alone service, I am
> only interested in the Apache Connector.
>
> The problem: the logon credentials are not being accepted even though
> they are correct.
> (I am using the suggested database configuration - table names,columns
> etc... and I am able to establish
> connections and perform queries outside of Tomcat. Tomcat is also able
> to make the connection and appropriate queries,
> although the prepared statement issued to retrieve the password is
> missing the userName info - ie.still ? )
>
> I have also seen a problem releasing db connections when running the
> shutdown script - see below.
>
> server.xml
> =======
> <Server port="8005" shutdown="SHUTDOWN" debug="0">
>   <!-- Apache-Connector Service -->
>   <Service name="Tomcat-Apache">
>     <Connector
> className="org.apache.catalina.connector.warp.WarpConnector"
>      port="8008" minProcessors="5" maxProcessors="75"
>      enableLookups="true"
>      acceptCount="10" debug="0"/>
>
>     <Engine className="org.apache.catalina.connector.warp.WarpEngine"
>      name="Apache" defaultHost="elderlyone" debug="0" appBase="webapps">
>
>       <Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"
>
>               driverName="COM.ibm.db2.jdbc.app.DB2Driver"
>               connectionURL="jdbc:db2:WEBAPPDB"
>               userTable="users" userNameCol="user_name"
> userCredCol="user_pass"
>               userRoleTable="user_roles" roleNameCol="role_name" />
>
>       <!-- Global logger unless overridden at lower levels -->
>       <Logger className="org.apache.catalina.logger.FileLogger"
>               prefix="catalina_log." suffix=".txt"
>               timestamp="true"/>
>
>       <Host name="elderlyone" debug="0" appBase="webapps"
> unpackWARs="true">
>         <Valve
> className="org.apache.catalina.valves.RequestDumperValve"/>
>         <Valve
> className="org.apache.catalina.authenticator.SingleSignOn"
>                    debug="0"/>
>         <Valve className="org.apache.catalina.valves.AccessLogValve"
>                  directory="logs"  prefix="elderlyone_access_log."
> suffix=".txt"
>                  pattern="common"/>
>         <Logger className="org.apache.catalina.logger.FileLogger"
>                  directory="logs"  prefix="elderlyone_cmn_context_log."
> suffix=".txt"
>                  timestamp="true"/>
>
>         <!-- cntx1 Context -->
>         <Context path="/cntx1" docBase="cntx1" debug="0"
>                  reloadable="true">
>           <Valve
> className="org.apache.catalina.valves.RequestDumperValve"/>
>           <Logger className="org.apache.catalina.logger.FileLogger"
>                      prefix="context_cntx1_log." suffix=".txt"
>            timestamp="true"/>
>         </Context>
>       </Host>
>     </Engine>
>   </Service>
> </Server>
>
> My apache httpd.conf:
> ===============
> WebAppConnection conn      warp  elderlyone:8008
> WebAppDeploy       cntx1 conn  /cntx1
>
> cntx1 web.xml
> ========
> <?xml version="1.0" encoding="ISO-8859-1"?>
>
> <!DOCTYPE web-app
>     PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
>     "http://java.sun.com/dtd/web-app_2_3.dtd">
>
> <web-app>
>
>   <!-- Define a Security Constraint on this Application -->
>   <security-constraint>
>     <web-resource-collection>
>       <web-resource-name>cntx1 WEB.XML RESOURCE NAME</web-resource-name>
>
>       <url-pattern>/*</url-pattern>
>     </web-resource-collection>
>     <auth-constraint>
>        <role-name>admin</role-name>
>     </auth-constraint>
>   </security-constraint>
>
>   <!-- Define the Login Configuration for this Application -->
>   <login-config>
>     <auth-method>BASIC</auth-method>
>     <realm-name>cntx1 REALM</realm-name>
>   </login-config>
>
> </web-app>
>
> ----------------------------------------------------------------------
> log output:
> context_wtc_log.txt
> =============
> 2001-08-29 15:55:42 WebappLoader[/wtc]: Deploying class repositories to
> work directory G:\Tomcat\jakarta-tomcat-4.0-b7\work\elderlyone\wtc
> 2001-08-29 15:55:42 WebappLoader[/wtc]: Reloading checks are enabled for
> this Context
> 2001-08-29 15:55:42 StandardManager[/wtc]: Seeding random number
> generator class java.security.SecureRandom
> 2001-08-29 15:55:42 StandardManager[/wtc]: Seeding of random number
> generator has been completed
> 2001-08-29 15:55:42 ContextConfig[/wtc]: Configured an authenticator for
> method BASIC
> 2001-08-29 15:55:42 StandardWrapper[/wtc:default]: Loading container
> servlet default
> 2001-08-29 15:55:42 default: init
> 2001-08-29 15:55:42 StandardWrapper[/wtc:invoker]: Loading container
> servlet invoker
> 2001-08-29 15:55:42 invoker: init
> 2001-08-29 15:55:42 StandardWrapper[/wtc:jsp]: Using Jasper classloader
> for servlet jsp
> 2001-08-29 15:55:42 jsp: init
> 2001-08-29 15:55:43 StandardWrapper[/wtc:ssi]: Loading container servlet
> ssi
> 2001-08-29 15:55:43 ssi: init
> 2001-08-29 15:55:43 StandardWrapper[/wtc:cgi]: Loading container servlet
> cgi
> 2001-08-29 15:55:43 cgi: init
> 2001-08-29 15:55:43 cgi: init: loglevel set to 6
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]: REQUEST URI       =/wtc/
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:           authType=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:  characterEncoding=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:      contentLength=-1
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:        contentType=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:        contextPath=/wtc
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> header=accept-language=en
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> header=connection=Keep-Alive
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> header=accept=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
> image/png, */*
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> header=host=elderlyone
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> header=accept-charset=iso-8859-1,*,utf-8
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> header=accept-encoding=gzip
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> header=user-agent=Mozilla/4.76 [en] (Windows NT 5.0; U)
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:             locale=en
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:             method=GET
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:           pathInfo=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> protocol=HTTP/1.0
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:        queryString=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> remoteAddr=64.231.78.150
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> remoteHost=64.231.78.150
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:         remoteUser=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]: requestedSessionId=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:             scheme=http
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> serverName=elderlyone
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:         serverPort=80
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:        servletPath=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:           isSecure=false
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> ---------------------------------------------------------------
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> ---------------------------------------------------------------
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:           authType=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:      contentLength=-1
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:        contentType=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> header=WWW-Authenticate=Basic realm="WTC WEB.XML REALM NAME"
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> message=Unauthorized
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:         remoteUser=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:             status=401
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> ===============================================================
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]: REQUEST URI       =/wtc/
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:           authType=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:  characterEncoding=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:      contentLength=-1
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:        contentType=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:        contextPath=/wtc
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=accept-language=en
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=connection=Keep-Alive
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=accept=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
> image/png, */*
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=authorization=Basic cmFpbWVlOnJhaW1lZQ==
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=host=elderlyone
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=accept-charset=iso-8859-1,*,utf-8
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=accept-encoding=gzip
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=user-agent=Mozilla/4.76 [en] (Windows NT 5.0; U)
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:             locale=en
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:             method=GET
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:           pathInfo=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> protocol=HTTP/1.0
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:        queryString=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> remoteAddr=64.231.78.150
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> remoteHost=64.231.78.150
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:         remoteUser=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]: requestedSessionId=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:             scheme=http
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> serverName=elderlyone
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:         serverPort=80
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:        servletPath=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:           isSecure=false
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> ---------------------------------------------------------------
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> ---------------------------------------------------------------
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:           authType=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:      contentLength=-1
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:        contentType=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=WWW-Authenticate=Basic realm="WTC WEB.XML REALM NAME"
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> message=Unauthorized
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:         remoteUser=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:             status=401
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> ===============================================================
>
> --------------
>
> The RequestDumperValve reveals that the remoteUser field is null both
> during the first request for the restricted URL
> and during the second request after I submitted the credentials through
> the browser.
>
> Can the Apache Connector run without defing an http stand-alone
> connector?
>
> There also appears to be a problem releasing database connections when
> exiting Tomcat
> using the shutdown.bat script:
>
> Here is the catalina_log.txt
> 2001-08-29 16:08:59 [org.apache.catalina.connector.warp.WarpConnector]
> Connection from elderlyone/64.231.78.150:3773 to
> elderlyone/64.231.78.150:8008
> 2001-08-29 16:08:59
> [org.apache.catalina.connector.warp.WarpConfigurationHandler] Filter
> mappings (0)
> 2001-08-29 16:09:16 WarpEngine[Apache]: Mapping request
> 2001-08-29 16:09:20 WarpEngine[Apache]: Mapping request
>
> <up to here ok, first two lines confirm startup of Apache, next two
> reflect simple requests >
>
> <Shutdown apache>
> 2001-08-29 16:09:43 [org.apache.catalina.connector.warp.WarpConnection]
> Exception on socket
> java.io.IOException: Premature packet header end
>  at
> org.apache.catalina.connector.warp.WarpConnection.recv(WarpConnection.java:2
> 36)
>
>  at
> org.apache.catalina.connector.warp.WarpRequestHandler.handle(WarpRequestHand
> ler.java:110)
>
>  at
> org.apache.catalina.connector.warp.WarpConnection.run(WarpConnection.java:19
> 4)
>
>  at java.lang.Thread.run(Thread.java:484)
>
> 2001-08-29 16:09:56 [org.apache.catalina.connector.warp.WarpConnector]
> Error accepting requests
> java.net.SocketException: socket closed
>  at java.net.PlainSocketImpl.socketAccept(Native Method)
>  at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:421)
>  at java.net.ServerSocket.implAccept(ServerSocket.java:243)
>  at java.net.ServerSocket.accept(ServerSocket.java:222)
>  at
> org.apache.catalina.connector.warp.WarpConnector.run(WarpConnector.java:554)
>
>  at java.lang.Thread.run(Thread.java:484)
>
> <Shutdown Catalina - shutdown.bat>
> 2001-08-29 16:09:56 JDBCRealm[Apache]: Exception closing database
> connection
> COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] CLI0116E  Invalid
> transaction state. SQLSTATE=25000
>  at
> COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(SQLExceptionGe
> nerator.java:174)
>
>  at
> COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_return_code(SQLExceptionGen
> erator.java:419)
>
>  at COM.ibm.db2.jdbc.app.DB2Connection.close2(DB2Connection.java:694)
>  at COM.ibm.db2.jdbc.app.DB2Connection.close(DB2Connection.java:667)
>  at org.apache.catalina.realm.JDBCRealm.close(JDBCRealm.java:439)
>  at org.apache.catalina.realm.JDBCRealm.stop(JDBCRealm.java:633)
>  at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1178)
>
>  at
> org.apache.catalina.core.StandardService.stop(StandardService.java:415)
>  at
> org.apache.catalina.core.StandardServer.stop(StandardServer.java:502)
>  at org.apache.catalina.startup.Catalina.start(Catalina.java:756)
>  at org.apache.catalina.startup.Catalina.execute(Catalina.java:657)
>  at org.apache.catalina.startup.Catalina.process(Catalina.java:178)
>  at java.lang.reflect.Method.invoke(Native Method)
>  at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:202)
>
> I don't believe that my first problem is related to this, but it should
> be of interest.
>
> Any suggestions welcome...Thanks.


Re: JDBCRealm with Catalina + Apache

Posted by Roland <ro...@netquant.com.br>.
Well, I was having trouble because the username and password where not
passed along properly. So instead of passing them in the connectionURL you
can use two extra attributes(connectionName and connectionPassword):

   <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
             driverName="org.gjt.mm.mysql.Driver"
   connectionURL="jdbc:mysql://127.0.0.1/tomcat"
   connectionName="root"
        connectionPassword="root"
             userTable="users" userNameCol="user_name"
userCredCol="user_pass"
          userRoleTable="user_roles" roleNameCol="role_name" />

This belongs in the server.xml file.

Hope it helps...
Roland



Re: JDBCRealm with Catalina + Apache

Posted by Raimee <ra...@sympatico.ca>.
I have modified the application web.xml as suggested but still no success.
I have also tried replacing the jdbc realm with a memory realm but that
yields the same results.

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
  <security-constraint>
   <web-resource-collection>
      <web-resource-name>The Entire Web Application</web-resource-name>
      <url-pattern>/*</url-pattern>
      <http-method>GET</http-method>
     <http-method>POST</http-method>
   </web-resource-collection>
    <auth-constraint>
      <role-name>admin</role-name>
    </auth-constraint>
  </security-constraint>

  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>cntx1 Realm</realm-name>
  </login-config>

  <security-role>
    <description>
      the suggested
    </description>
    <role-name>admin</role-name>
  </security-role>

</web-app>



Christoph Rooms wrote:

> Hi,
>
> Try to change this in your web.xml :
>
>   <security-constraint>
>     <web-resource-collection>
>       <web-resource-name>cntx1 WEB.XML RESOURCE NAME</web-resource-name>
>       <url-pattern>/*</url-pattern>
> -->     <http-method>GET</http-method>
> -->     <http-method>POST</http-method>
>     </web-resource-collection>
>     <auth-constraint>
>        <role-name>admin</role-name>
>     </auth-constraint>
>   ...
>   </security-constraint>
> -->  <security-role>admin</security-role>
>
> -----Original Message-----
> From: Raimee [mailto:raimee@sympatico.ca]
> Sent: woensdag 29 augustus 2001 22:20
> To: tomcat-user@jakarta.apache.org
> Subject: JDBCRealm with Catalina + Apache
>
> I am having trouble setting up the following
>
> JDBCRealm with Tomcat-4.0-b7 and Apache 1.3 on Windows 2000. I have not
> defined a Stand-Alone service, I am
> only interested in the Apache Connector.
>
> The problem: the logon credentials are not being accepted even though
> they are correct.
> (I am using the suggested database configuration - table names,columns
> etc... and I am able to establish
> connections and perform queries outside of Tomcat. Tomcat is also able
> to make the connection and appropriate queries,
> although the prepared statement issued to retrieve the password is
> missing the userName info - ie.still ? )
>
> I have also seen a problem releasing db connections when running the
> shutdown script - see below.
>
> server.xml
> =======
> <Server port="8005" shutdown="SHUTDOWN" debug="0">
>   <!-- Apache-Connector Service -->
>   <Service name="Tomcat-Apache">
>     <Connector
> className="org.apache.catalina.connector.warp.WarpConnector"
>      port="8008" minProcessors="5" maxProcessors="75"
>      enableLookups="true"
>      acceptCount="10" debug="0"/>
>
>     <Engine className="org.apache.catalina.connector.warp.WarpEngine"
>      name="Apache" defaultHost="elderlyone" debug="0" appBase="webapps">
>
>       <Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"
>
>               driverName="COM.ibm.db2.jdbc.app.DB2Driver"
>               connectionURL="jdbc:db2:WEBAPPDB"
>               userTable="users" userNameCol="user_name"
> userCredCol="user_pass"
>               userRoleTable="user_roles" roleNameCol="role_name" />
>
>       <!-- Global logger unless overridden at lower levels -->
>       <Logger className="org.apache.catalina.logger.FileLogger"
>               prefix="catalina_log." suffix=".txt"
>               timestamp="true"/>
>
>       <Host name="elderlyone" debug="0" appBase="webapps"
> unpackWARs="true">
>         <Valve
> className="org.apache.catalina.valves.RequestDumperValve"/>
>         <Valve
> className="org.apache.catalina.authenticator.SingleSignOn"
>                    debug="0"/>
>         <Valve className="org.apache.catalina.valves.AccessLogValve"
>                  directory="logs"  prefix="elderlyone_access_log."
> suffix=".txt"
>                  pattern="common"/>
>         <Logger className="org.apache.catalina.logger.FileLogger"
>                  directory="logs"  prefix="elderlyone_cmn_context_log."
> suffix=".txt"
>                  timestamp="true"/>
>
>         <!-- cntx1 Context -->
>         <Context path="/cntx1" docBase="cntx1" debug="0"
>                  reloadable="true">
>           <Valve
> className="org.apache.catalina.valves.RequestDumperValve"/>
>           <Logger className="org.apache.catalina.logger.FileLogger"
>                      prefix="context_cntx1_log." suffix=".txt"
>            timestamp="true"/>
>         </Context>
>       </Host>
>     </Engine>
>   </Service>
> </Server>
>
> My apache httpd.conf:
> ===============
> WebAppConnection conn      warp  elderlyone:8008
> WebAppDeploy       cntx1 conn  /cntx1
>
> cntx1 web.xml
> ========
> <?xml version="1.0" encoding="ISO-8859-1"?>
>
> <!DOCTYPE web-app
>     PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
>     "http://java.sun.com/dtd/web-app_2_3.dtd">
>
> <web-app>
>
>   <!-- Define a Security Constraint on this Application -->
>   <security-constraint>
>     <web-resource-collection>
>       <web-resource-name>cntx1 WEB.XML RESOURCE NAME</web-resource-name>
>
>       <url-pattern>/*</url-pattern>
>     </web-resource-collection>
>     <auth-constraint>
>        <role-name>admin</role-name>
>     </auth-constraint>
>   </security-constraint>
>
>   <!-- Define the Login Configuration for this Application -->
>   <login-config>
>     <auth-method>BASIC</auth-method>
>     <realm-name>cntx1 REALM</realm-name>
>   </login-config>
>
> </web-app>
>
> ----------------------------------------------------------------------
> log output:
> context_wtc_log.txt
> =============
> 2001-08-29 15:55:42 WebappLoader[/wtc]: Deploying class repositories to
> work directory G:\Tomcat\jakarta-tomcat-4.0-b7\work\elderlyone\wtc
> 2001-08-29 15:55:42 WebappLoader[/wtc]: Reloading checks are enabled for
> this Context
> 2001-08-29 15:55:42 StandardManager[/wtc]: Seeding random number
> generator class java.security.SecureRandom
> 2001-08-29 15:55:42 StandardManager[/wtc]: Seeding of random number
> generator has been completed
> 2001-08-29 15:55:42 ContextConfig[/wtc]: Configured an authenticator for
> method BASIC
> 2001-08-29 15:55:42 StandardWrapper[/wtc:default]: Loading container
> servlet default
> 2001-08-29 15:55:42 default: init
> 2001-08-29 15:55:42 StandardWrapper[/wtc:invoker]: Loading container
> servlet invoker
> 2001-08-29 15:55:42 invoker: init
> 2001-08-29 15:55:42 StandardWrapper[/wtc:jsp]: Using Jasper classloader
> for servlet jsp
> 2001-08-29 15:55:42 jsp: init
> 2001-08-29 15:55:43 StandardWrapper[/wtc:ssi]: Loading container servlet
> ssi
> 2001-08-29 15:55:43 ssi: init
> 2001-08-29 15:55:43 StandardWrapper[/wtc:cgi]: Loading container servlet
> cgi
> 2001-08-29 15:55:43 cgi: init
> 2001-08-29 15:55:43 cgi: init: loglevel set to 6
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]: REQUEST URI       =/wtc/
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:           authType=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:  characterEncoding=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:      contentLength=-1
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:        contentType=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:        contextPath=/wtc
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> header=accept-language=en
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> header=connection=Keep-Alive
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> header=accept=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
> image/png, */*
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> header=host=elderlyone
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> header=accept-charset=iso-8859-1,*,utf-8
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> header=accept-encoding=gzip
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> header=user-agent=Mozilla/4.76 [en] (Windows NT 5.0; U)
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:             locale=en
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:             method=GET
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:           pathInfo=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> protocol=HTTP/1.0
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:        queryString=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> remoteAddr=64.231.78.150
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> remoteHost=64.231.78.150
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:         remoteUser=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]: requestedSessionId=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:             scheme=http
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> serverName=elderlyone
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:         serverPort=80
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:        servletPath=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:           isSecure=false
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> ---------------------------------------------------------------
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> ---------------------------------------------------------------
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:           authType=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:      contentLength=-1
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:        contentType=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> header=WWW-Authenticate=Basic realm="WTC WEB.XML REALM NAME"
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> message=Unauthorized
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:         remoteUser=null
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:             status=401
> 2001-08-29 15:56:20 RequestDumperValve[/wtc]:
> ===============================================================
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]: REQUEST URI       =/wtc/
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:           authType=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:  characterEncoding=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:      contentLength=-1
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:        contentType=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:        contextPath=/wtc
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=accept-language=en
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=connection=Keep-Alive
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=accept=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
> image/png, */*
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=authorization=Basic cmFpbWVlOnJhaW1lZQ==
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=host=elderlyone
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=accept-charset=iso-8859-1,*,utf-8
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=accept-encoding=gzip
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=user-agent=Mozilla/4.76 [en] (Windows NT 5.0; U)
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:             locale=en
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:             method=GET
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:           pathInfo=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> protocol=HTTP/1.0
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:        queryString=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> remoteAddr=64.231.78.150
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> remoteHost=64.231.78.150
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:         remoteUser=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]: requestedSessionId=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:             scheme=http
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> serverName=elderlyone
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:         serverPort=80
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:        servletPath=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:           isSecure=false
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> ---------------------------------------------------------------
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> ---------------------------------------------------------------
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:           authType=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:      contentLength=-1
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:        contentType=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> header=WWW-Authenticate=Basic realm="WTC WEB.XML REALM NAME"
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> message=Unauthorized
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:         remoteUser=null
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:             status=401
> 2001-08-29 15:56:23 RequestDumperValve[/wtc]:
> ===============================================================
>
> --------------
>
> The RequestDumperValve reveals that the remoteUser field is null both
> during the first request for the restricted URL
> and during the second request after I submitted the credentials through
> the browser.
>
> Can the Apache Connector run without defing an http stand-alone
> connector?
>
> There also appears to be a problem releasing database connections when
> exiting Tomcat
> using the shutdown.bat script:
>
> Here is the catalina_log.txt
> 2001-08-29 16:08:59 [org.apache.catalina.connector.warp.WarpConnector]
> Connection from elderlyone/64.231.78.150:3773 to
> elderlyone/64.231.78.150:8008
> 2001-08-29 16:08:59
> [org.apache.catalina.connector.warp.WarpConfigurationHandler] Filter
> mappings (0)
> 2001-08-29 16:09:16 WarpEngine[Apache]: Mapping request
> 2001-08-29 16:09:20 WarpEngine[Apache]: Mapping request
>
> <up to here ok, first two lines confirm startup of Apache, next two
> reflect simple requests >
>
> <Shutdown apache>
> 2001-08-29 16:09:43 [org.apache.catalina.connector.warp.WarpConnection]
> Exception on socket
> java.io.IOException: Premature packet header end
>  at
> org.apache.catalina.connector.warp.WarpConnection.recv(WarpConnection.java:2
> 36)
>
>  at
> org.apache.catalina.connector.warp.WarpRequestHandler.handle(WarpRequestHand
> ler.java:110)
>
>  at
> org.apache.catalina.connector.warp.WarpConnection.run(WarpConnection.java:19
> 4)
>
>  at java.lang.Thread.run(Thread.java:484)
>
> 2001-08-29 16:09:56 [org.apache.catalina.connector.warp.WarpConnector]
> Error accepting requests
> java.net.SocketException: socket closed
>  at java.net.PlainSocketImpl.socketAccept(Native Method)
>  at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:421)
>  at java.net.ServerSocket.implAccept(ServerSocket.java:243)
>  at java.net.ServerSocket.accept(ServerSocket.java:222)
>  at
> org.apache.catalina.connector.warp.WarpConnector.run(WarpConnector.java:554)
>
>  at java.lang.Thread.run(Thread.java:484)
>
> <Shutdown Catalina - shutdown.bat>
> 2001-08-29 16:09:56 JDBCRealm[Apache]: Exception closing database
> connection
> COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] CLI0116E  Invalid
> transaction state. SQLSTATE=25000
>  at
> COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(SQLExceptionGe
> nerator.java:174)
>
>  at
> COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_return_code(SQLExceptionGen
> erator.java:419)
>
>  at COM.ibm.db2.jdbc.app.DB2Connection.close2(DB2Connection.java:694)
>  at COM.ibm.db2.jdbc.app.DB2Connection.close(DB2Connection.java:667)
>  at org.apache.catalina.realm.JDBCRealm.close(JDBCRealm.java:439)
>  at org.apache.catalina.realm.JDBCRealm.stop(JDBCRealm.java:633)
>  at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1178)
>
>  at
> org.apache.catalina.core.StandardService.stop(StandardService.java:415)
>  at
> org.apache.catalina.core.StandardServer.stop(StandardServer.java:502)
>  at org.apache.catalina.startup.Catalina.start(Catalina.java:756)
>  at org.apache.catalina.startup.Catalina.execute(Catalina.java:657)
>  at org.apache.catalina.startup.Catalina.process(Catalina.java:178)
>  at java.lang.reflect.Method.invoke(Native Method)
>  at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:202)
>
> I don't believe that my first problem is related to this, but it should
> be of interest.
>
> Any suggestions welcome...Thanks.


RE: JDBCRealm with Catalina + Apache

Posted by Christoph Rooms <ch...@pandora.be>.
Hi,

Try to change this in your web.xml :

  <security-constraint>
    <web-resource-collection>
      <web-resource-name>cntx1 WEB.XML RESOURCE NAME</web-resource-name>
      <url-pattern>/*</url-pattern>
-->	<http-method>GET</http-method>
-->	<http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
       <role-name>admin</role-name>
    </auth-constraint>
  ...
  </security-constraint>
-->  <security-role>admin</security-role>

-----Original Message-----
From: Raimee [mailto:raimee@sympatico.ca]
Sent: woensdag 29 augustus 2001 22:20
To: tomcat-user@jakarta.apache.org
Subject: JDBCRealm with Catalina + Apache


I am having trouble setting up the following

JDBCRealm with Tomcat-4.0-b7 and Apache 1.3 on Windows 2000. I have not
defined a Stand-Alone service, I am
only interested in the Apache Connector.

The problem: the logon credentials are not being accepted even though
they are correct.
(I am using the suggested database configuration - table names,columns
etc... and I am able to establish
connections and perform queries outside of Tomcat. Tomcat is also able
to make the connection and appropriate queries,
although the prepared statement issued to retrieve the password is
missing the userName info - ie.still ? )

I have also seen a problem releasing db connections when running the
shutdown script - see below.

server.xml
=======
<Server port="8005" shutdown="SHUTDOWN" debug="0">
  <!-- Apache-Connector Service -->
  <Service name="Tomcat-Apache">
    <Connector
className="org.apache.catalina.connector.warp.WarpConnector"
     port="8008" minProcessors="5" maxProcessors="75"
     enableLookups="true"
     acceptCount="10" debug="0"/>

    <Engine className="org.apache.catalina.connector.warp.WarpEngine"
     name="Apache" defaultHost="elderlyone" debug="0" appBase="webapps">

      <Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"

              driverName="COM.ibm.db2.jdbc.app.DB2Driver"
              connectionURL="jdbc:db2:WEBAPPDB"
              userTable="users" userNameCol="user_name"
userCredCol="user_pass"
              userRoleTable="user_roles" roleNameCol="role_name" />

      <!-- Global logger unless overridden at lower levels -->
      <Logger className="org.apache.catalina.logger.FileLogger"
              prefix="catalina_log." suffix=".txt"
              timestamp="true"/>

      <Host name="elderlyone" debug="0" appBase="webapps"
unpackWARs="true">
        <Valve
className="org.apache.catalina.valves.RequestDumperValve"/>
        <Valve
className="org.apache.catalina.authenticator.SingleSignOn"
                   debug="0"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve"
                 directory="logs"  prefix="elderlyone_access_log."
suffix=".txt"
                 pattern="common"/>
        <Logger className="org.apache.catalina.logger.FileLogger"
                 directory="logs"  prefix="elderlyone_cmn_context_log."
suffix=".txt"
                 timestamp="true"/>

        <!-- cntx1 Context -->
        <Context path="/cntx1" docBase="cntx1" debug="0"
                 reloadable="true">
          <Valve
className="org.apache.catalina.valves.RequestDumperValve"/>
          <Logger className="org.apache.catalina.logger.FileLogger"
                     prefix="context_cntx1_log." suffix=".txt"
           timestamp="true"/>
        </Context>
      </Host>
    </Engine>
  </Service>
</Server>

My apache httpd.conf:
===============
WebAppConnection conn      warp  elderlyone:8008
WebAppDeploy       cntx1 conn  /cntx1


cntx1 web.xml
========
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

  <!-- Define a Security Constraint on this Application -->
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>cntx1 WEB.XML RESOURCE NAME</web-resource-name>

      <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>admin</role-name>
    </auth-constraint>
  </security-constraint>

  <!-- Define the Login Configuration for this Application -->
  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>cntx1 REALM</realm-name>
  </login-config>

</web-app>

----------------------------------------------------------------------
log output:
context_wtc_log.txt
=============
2001-08-29 15:55:42 WebappLoader[/wtc]: Deploying class repositories to
work directory G:\Tomcat\jakarta-tomcat-4.0-b7\work\elderlyone\wtc
2001-08-29 15:55:42 WebappLoader[/wtc]: Reloading checks are enabled for
this Context
2001-08-29 15:55:42 StandardManager[/wtc]: Seeding random number
generator class java.security.SecureRandom
2001-08-29 15:55:42 StandardManager[/wtc]: Seeding of random number
generator has been completed
2001-08-29 15:55:42 ContextConfig[/wtc]: Configured an authenticator for
method BASIC
2001-08-29 15:55:42 StandardWrapper[/wtc:default]: Loading container
servlet default
2001-08-29 15:55:42 default: init
2001-08-29 15:55:42 StandardWrapper[/wtc:invoker]: Loading container
servlet invoker
2001-08-29 15:55:42 invoker: init
2001-08-29 15:55:42 StandardWrapper[/wtc:jsp]: Using Jasper classloader
for servlet jsp
2001-08-29 15:55:42 jsp: init
2001-08-29 15:55:43 StandardWrapper[/wtc:ssi]: Loading container servlet
ssi
2001-08-29 15:55:43 ssi: init
2001-08-29 15:55:43 StandardWrapper[/wtc:cgi]: Loading container servlet
cgi
2001-08-29 15:55:43 cgi: init
2001-08-29 15:55:43 cgi: init: loglevel set to 6
2001-08-29 15:56:20 RequestDumperValve[/wtc]: REQUEST URI       =/wtc/
2001-08-29 15:56:20 RequestDumperValve[/wtc]:           authType=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:  characterEncoding=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:      contentLength=-1
2001-08-29 15:56:20 RequestDumperValve[/wtc]:        contentType=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:        contextPath=/wtc
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
header=accept-language=en
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
header=connection=Keep-Alive
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
header=accept=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
image/png, */*
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
header=host=elderlyone
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
header=accept-charset=iso-8859-1,*,utf-8
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
header=accept-encoding=gzip
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
header=user-agent=Mozilla/4.76 [en] (Windows NT 5.0; U)
2001-08-29 15:56:20 RequestDumperValve[/wtc]:             locale=en
2001-08-29 15:56:20 RequestDumperValve[/wtc]:             method=GET
2001-08-29 15:56:20 RequestDumperValve[/wtc]:           pathInfo=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
protocol=HTTP/1.0
2001-08-29 15:56:20 RequestDumperValve[/wtc]:        queryString=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
remoteAddr=64.231.78.150
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
remoteHost=64.231.78.150
2001-08-29 15:56:20 RequestDumperValve[/wtc]:         remoteUser=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]: requestedSessionId=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:             scheme=http
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
serverName=elderlyone
2001-08-29 15:56:20 RequestDumperValve[/wtc]:         serverPort=80
2001-08-29 15:56:20 RequestDumperValve[/wtc]:        servletPath=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:           isSecure=false
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
---------------------------------------------------------------
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
---------------------------------------------------------------
2001-08-29 15:56:20 RequestDumperValve[/wtc]:           authType=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:      contentLength=-1
2001-08-29 15:56:20 RequestDumperValve[/wtc]:        contentType=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
header=WWW-Authenticate=Basic realm="WTC WEB.XML REALM NAME"
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
message=Unauthorized
2001-08-29 15:56:20 RequestDumperValve[/wtc]:         remoteUser=null
2001-08-29 15:56:20 RequestDumperValve[/wtc]:             status=401
2001-08-29 15:56:20 RequestDumperValve[/wtc]:
===============================================================
2001-08-29 15:56:23 RequestDumperValve[/wtc]: REQUEST URI       =/wtc/
2001-08-29 15:56:23 RequestDumperValve[/wtc]:           authType=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:  characterEncoding=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:      contentLength=-1
2001-08-29 15:56:23 RequestDumperValve[/wtc]:        contentType=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:        contextPath=/wtc
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=accept-language=en
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=connection=Keep-Alive
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=accept=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
image/png, */*
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=authorization=Basic cmFpbWVlOnJhaW1lZQ==
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=host=elderlyone
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=accept-charset=iso-8859-1,*,utf-8
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=accept-encoding=gzip
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=user-agent=Mozilla/4.76 [en] (Windows NT 5.0; U)
2001-08-29 15:56:23 RequestDumperValve[/wtc]:             locale=en
2001-08-29 15:56:23 RequestDumperValve[/wtc]:             method=GET
2001-08-29 15:56:23 RequestDumperValve[/wtc]:           pathInfo=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
protocol=HTTP/1.0
2001-08-29 15:56:23 RequestDumperValve[/wtc]:        queryString=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
remoteAddr=64.231.78.150
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
remoteHost=64.231.78.150
2001-08-29 15:56:23 RequestDumperValve[/wtc]:         remoteUser=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]: requestedSessionId=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:             scheme=http
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
serverName=elderlyone
2001-08-29 15:56:23 RequestDumperValve[/wtc]:         serverPort=80
2001-08-29 15:56:23 RequestDumperValve[/wtc]:        servletPath=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:           isSecure=false
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
---------------------------------------------------------------
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
---------------------------------------------------------------
2001-08-29 15:56:23 RequestDumperValve[/wtc]:           authType=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:      contentLength=-1
2001-08-29 15:56:23 RequestDumperValve[/wtc]:        contentType=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
header=WWW-Authenticate=Basic realm="WTC WEB.XML REALM NAME"
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
message=Unauthorized
2001-08-29 15:56:23 RequestDumperValve[/wtc]:         remoteUser=null
2001-08-29 15:56:23 RequestDumperValve[/wtc]:             status=401
2001-08-29 15:56:23 RequestDumperValve[/wtc]:
===============================================================


--------------

The RequestDumperValve reveals that the remoteUser field is null both
during the first request for the restricted URL
and during the second request after I submitted the credentials through
the browser.

Can the Apache Connector run without defing an http stand-alone
connector?

There also appears to be a problem releasing database connections when
exiting Tomcat
using the shutdown.bat script:

Here is the catalina_log.txt
2001-08-29 16:08:59 [org.apache.catalina.connector.warp.WarpConnector]
Connection from elderlyone/64.231.78.150:3773 to
elderlyone/64.231.78.150:8008
2001-08-29 16:08:59
[org.apache.catalina.connector.warp.WarpConfigurationHandler] Filter
mappings (0)
2001-08-29 16:09:16 WarpEngine[Apache]: Mapping request
2001-08-29 16:09:20 WarpEngine[Apache]: Mapping request

<up to here ok, first two lines confirm startup of Apache, next two
reflect simple requests >

<Shutdown apache>
2001-08-29 16:09:43 [org.apache.catalina.connector.warp.WarpConnection]
Exception on socket
java.io.IOException: Premature packet header end
 at
org.apache.catalina.connector.warp.WarpConnection.recv(WarpConnection.java:2
36)

 at
org.apache.catalina.connector.warp.WarpRequestHandler.handle(WarpRequestHand
ler.java:110)

 at
org.apache.catalina.connector.warp.WarpConnection.run(WarpConnection.java:19
4)

 at java.lang.Thread.run(Thread.java:484)

2001-08-29 16:09:56 [org.apache.catalina.connector.warp.WarpConnector]
Error accepting requests
java.net.SocketException: socket closed
 at java.net.PlainSocketImpl.socketAccept(Native Method)
 at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:421)
 at java.net.ServerSocket.implAccept(ServerSocket.java:243)
 at java.net.ServerSocket.accept(ServerSocket.java:222)
 at
org.apache.catalina.connector.warp.WarpConnector.run(WarpConnector.java:554)

 at java.lang.Thread.run(Thread.java:484)

<Shutdown Catalina - shutdown.bat>
2001-08-29 16:09:56 JDBCRealm[Apache]: Exception closing database
connection
COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] CLI0116E  Invalid
transaction state. SQLSTATE=25000
 at
COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(SQLExceptionGe
nerator.java:174)

 at
COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_return_code(SQLExceptionGen
erator.java:419)

 at COM.ibm.db2.jdbc.app.DB2Connection.close2(DB2Connection.java:694)
 at COM.ibm.db2.jdbc.app.DB2Connection.close(DB2Connection.java:667)
 at org.apache.catalina.realm.JDBCRealm.close(JDBCRealm.java:439)
 at org.apache.catalina.realm.JDBCRealm.stop(JDBCRealm.java:633)
 at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1178)

 at
org.apache.catalina.core.StandardService.stop(StandardService.java:415)
 at
org.apache.catalina.core.StandardServer.stop(StandardServer.java:502)
 at org.apache.catalina.startup.Catalina.start(Catalina.java:756)
 at org.apache.catalina.startup.Catalina.execute(Catalina.java:657)
 at org.apache.catalina.startup.Catalina.process(Catalina.java:178)
 at java.lang.reflect.Method.invoke(Native Method)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:202)

I don't believe that my first problem is related to this, but it should
be of interest.

Any suggestions welcome...Thanks.