Hi again Craig,
So I've followed the "cookbook" way to do my custom Authenticator and
it does not seem to work, even if I use the exact code from for example
FormAuthenticator.java. I'm testing it by changing a working web.xml
file for the protected example
(/examples/jsp/security/protected/index.jsp) by
specifying my own custom Authenticator like:
<auth-method>CUSTAUTH</auth-method>
which is defined in my
<tomcat_home>\server\classes\org\apache\catalina\startup\Authenticators.properties
file like:
CUSTAUTH=org.mycompany.authenticator.MyFormAuthenticator
So, when I try to access the protected example jsp page, I get this error:
"HTTP Status 500 - Configuration error: Cannot perform access control
without an authenticated principal"
If I change the web.xml back to use "FORM" or "BASIC" then it would work.
Would you have any ideas Craig?
Thanks again,
Dan
On Wed, 9 Jan 2002, Craig R. McClanahan wrote:
> 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]>
>
--
To unsubscribe: <mailto:[EMAIL PROTECTED]>
For additional commands: <mailto:[EMAIL PROTECTED]>
Troubles with the list: <mailto:[EMAIL PROTECTED]>