----- Original Message -----
From: "Anton Ushakov" <[EMAIL PROTECTED]>
To: "Tomcat Developers List" <[EMAIL PROTECTED]>
Sent: Friday, March 26, 2004 4:24 PM
Subject: Re: Coyote's ServerSocketFactory problem


> Should I make a bug entry for this? I wanted to get someone from the
> tomcat dev team to see if I was missing something before flagging this
> as a bug.
>

The Catalina SocketFactory is deprecated for use with Coyote in 5.x, and it
would probably should be for 4.x as well except for the fact that it is
still required to set SSL attributes.  This means that anything involving
this SocketFactory will just get marked as WONTFIX.

Passing the socketFactory attribute on to the Protocol might be something
(except for the fact that it is working in 5.x means it may not get a lot of
attention :).

> thank you
> -anton
>
>
>
> On Wed, 2004-03-24 at 17:16, Anton Ushakov wrote:
> > In CoyoteConnector.initialize() there's an assumption that if the
> > factory is an instance of CoyoteServerSocketFactory, it's gonna be SSL,
> > and it sets secure=true. Then in
> > Http11ConnectionHandler.checkSocketFactory() in the Http11Protocol.java,
> > it interprets that "secure" flag as SSL and uses SSLImplementation to
> > get the socket factory.
> >
> > In our case, the scheme is not ssl, so unfortunately this doesn't work.
> >
> > Http11Protocol just wasn't written to accept a socket factory object,
> > and the one it makes from the passed classname is of a different type
> > than CoyoteConnector's socket factory. It's not enough to make the types
> > the same, it really should take a whole factory object, since the
> > factory's attributes need to be set from the conf.
> >
> >
> > On Wed, 2004-03-24 at 16:03, Jim Hopp wrote:
> > > We have a similar need (though for a different reason) and extend
> > > CoyoteServerSocketFactory.  We're running TC 4.1.29.
> > >
> > > Here's our Connector element:
> > >      <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
> > >                 port="7002"
> > >                 scheme="https"
> > >                 secure="true"
> > >                 address="127.0.0.1"
> > >                 enableLookups="false">
> > >        <Factory className="nyw.catalina.NYWCoyoteServerSocketFactory"
> > >                 clientAuth="true"/>
> > >      </Connector>
> > >
> > > Works great.
> > >
> > > -Jim
> > >
> > > Anton Ushakov wrote:
> > > > Hello Tomcat Developers!
> > > >
> > > > I'm working with Tomcat 4.1.29 and I'd like to use my own
> > > > ServerSocketFactory, as I'm working on a custom implementation of
httpg
> > > > (HTTP over GSSAPI authenticated sockets). This seems impossible by
> > > > design, which I think may be a bug.
> > > >
> > > > Instead of using the deprecated HttpConnector I'm trying to use the
> > > > CoyoteConnector. The trouble is, with CoyoteConnector there is no
way to
> > > > override the ServerSocketFactory to be used. My
> > > > CustomServerSocketFactory implements
> > > > org.apache.catalina.net.ServerSocketFactory, and I tried using the
> > > > following in server.xml:
> > > >
> > > >     <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
> > > >                port="6688" minProcessors="5" maxProcessors="75"
> > > >                enableLookups="true" redirectPort="8443"
> > > >                acceptCount="100" debug="50"
connectionTimeout="20000"
> > > >                scheme="httpg"
> > > >                useURIValidationHack="false"
disableUploadTimeout="true">
> > > >     <Factory className="my.own.CustomServerSocketFactory"
> > > >                principal="service/[EMAIL PROTECTED]"
> > > >                keytab="/etc/keytab" />
> > > >     </Connector>
> > > >
> > > >
> > > > This will successfully set the factory in CoyoteConnector, but it
does
> > > > NOT propagate to org.apache.coyote.http11.Http11Protocol, and the
actual
> > > > factory getting used at runtime is the default one in
Http11Protocol.
> > > > The CoyoteConnector's "factory" datamember is totally ignored.
> > > >
> > > > I would think that in org/apache/coyote/tomcat4/CoyoteConnector.java
> > > > around lines 1111-1135 there should be something to propagate the
socket
> > > > factory to the protocolHandler. However even then, Http11Protocol
> > > > insists on using  org.apache.tomcat.util.net.ServerSocketFactory,
not
> > > > the org.apache.catalina.net.ServerSocketFactory required by the
> > > > CoyoteConnector. (?)
> > > >
> > > > Bottom line - how is one supposed to specify a custom
> > > > ServerSocketFactory with the CoyoteConnector?
> > > >
> > > > Bill Barker has emailed me a suggestion of using the
> > > > socketFactory="fully.qualified.name.of.MyOwnServerSocketFactory"
> > > > attribute on the <Connector> element. While I appreciate the
response,
> > > > that doesn't set the factory datamember in the Connector, and
neither
> > > > does it change the socketFactory in the protocolHandler.
> > > >
> > > > I appreciate your help on this
> > > >
> > > > -anton
> > > >
> > > >
> > > >
> > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>

This message is intended only for the use of the person(s) listed above as the 
intended recipient(s), and may contain information that is PRIVILEGED and 
CONFIDENTIAL.  If you are not an intended recipient, you may not read, copy, or 
distribute this message or any attachment. If you received this communication in 
error, please notify us immediately by e-mail and then delete all copies of this 
message and any attachments.

In addition you should be aware that ordinary (unencrypted) e-mail sent through the 
Internet is not secure. Do not send confidential or sensitive information, such as 
social security numbers, account numbers, personal identification numbers and 
passwords, to us via ordinary (unencrypted) e-mail.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to