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]



Reply via email to