On Wed, 9 Jan 2002, Dan Kha wrote:

> Date: Wed, 9 Jan 2002 15:54:52 -0500 (EST)
> From: Dan Kha <[EMAIL PROTECTED]>
> Reply-To: Tomcat Users List <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED]
> Subject: TC4.01: custom Authenticator
>
>
> Hi,
>
> I'm interested in writing my own Authenticator implementation.  My
> question is, after writing my own implementation, how do I tell Tomcat
> 4.01 to use my own custom Authenticator (and if possible without changing
> Tomcat's source)?
>

The following cookbook steps should get you started:

* Create your own Authenticator implementation.  Usually it's
  easiest to extend org.apache.catalina.authenticator.AuthenticatorBase
  for this, but at a minimum you have to implement Valve.

* Package your Authenticator class in a JAR file and put it in
  $CATALINA_HOME/server/lib, *or* leave it in an unpacked directory
  structure under $CATALINA_HOME/server/classes (which you might
  have to create).  As you'll see in the next step, the latter is
  probably easier.

* Extract the file "org/apache/catalina/startup/Authenticators.properties"
  file from $CATALINA_HOME/server/lib/catalina.jar, into the server/classes
  directory
  ($CATALINA_HOME/server/classes/org/apache/catalina.startup/Authenticators.properties)

* Edit this file to include an entry for a new login method.  For example:
  FOO=com.mycompany.mypackage.MyAuthenticator

* Modify the web.xml file of apps that want to use this Authenticator
  to indicate the use of the new authentication method:
    <login-config>
      <auth-method>FOO</auth-method>
      ...
    </login-config>
  Note that you cannot change any of the elements in web.xml because
  they are fixed by the DTD.

> I know that to use the standard authenticators, I add the appropriate
> lines in the web.xml file but I haven't found a way to change that to
> support my own.
>

It should go without saying that you're tying yourself now and forever
more to the Tomcat 4 architecture, but the above should work.

> Does anyone have any ideas?
>
> Thanks in advance,
> Dan
>


> NOTE to anyone thinking of extending FormAuthenticator or
> BasicAuthenticator, you need to get the cvs source since the Tomcat 4.01
> distribution declared those classes as "final".
>

The "final" has been removed from these classes in the HEAD branch (which
is what the nightly builds are created from).

Craig


--
To unsubscribe:   <mailto:[EMAIL PROTECTED]>
For additional commands: <mailto:[EMAIL PROTECTED]>
Troubles with the list: <mailto:[EMAIL PROTECTED]>

Reply via email to