I've been messing around with some wacky PerlAccessHandler and
PerlAuthenHandler code lately, if Apache::AuthCookie is orphaned I might
want to fix it up.  Last I looked, it's tests choked on "Undefined
subroutine &Apache::perl_hook" ...IIRC that means it's not current.  Is
anybody using it in production with recent mod_perl's??

Meanwhile, back at the ranch...

> Hi folks,
> 
> I haven't gotten any response about this.  My email to Eric Bartley (the author
> of Apache::AuthCookie) bounced - does anyone know how to contact him, or
> whether there's a new maintainer?
> 
> If we can't find him, I suppose we should either make a new module for this
> (Apache::CookieAuth?) or find a new maintainer for AuthCookie.
> 
> 
> [EMAIL PROTECTED] (Ken Williams) wrote:
> >Hi mod_perl-ers,
> >
> >I've been working with the Apache::AuthCookie module, and have made a
> >couple of modifications that make it more flexible.  As an added
> >benefit, the code is now shorter and simpler. =)  I hereby submit the
> >code for discussion and possible adoption by Eric.  Patch attached.
> >
> >The motivation for this was that I wanted users to be able to access
> >certain documents whether they're logged in or not.  If they're logged
> >in, they should get a customized version of the document (packages like
> >HTML::Mason make this easy), and if they're not, they get a generic
> >version.  This required two changes:
> >
> > - Apache::AuthCookie should be able to recognize whether a user is logged 
> >   in, *even for unprotected documents*.
> >   
> > - Since a user can access a document regardless of whether he/she is
> >   logged in, and since the user should be able to log in at any time, the
> >   login procedure should be trigerrable by some means other than simply
> >   accessing a protected document.
> >
> >The key change is that there's now a URL (I've called it LOGIN) and
> >corresponding method (Apache::AuthCookie->login()) that handles a
> >user's initial login.  After login, the user is redirected to the page
> >they requested. This means that the authen() method doesn't have to
> >implement such complicated logic anymore - if the user sent a cookie,
> >check its validity.  If not, redirect to the login form.  That meant I
> >could rip out a lot of the code from the authen() method.
> >
> >There's also a new recognize_user() method which checks to see whether
> >a valid authentication cookie has been sent, and if so, sets
> >$r->connection->user.
> >
> >
> >As a bonus side-effect, AuthCookie can now authenticate even when the
> >requested page URL has a non-empty query string (this has been a
> >limitation of AuthCookie).  This is because the redirection URL is now
> >simply sent in the login form as a hidden field, so it can contain
> >whatever query information it wants.
> >
> >
> >It's important to note that these changes are not fully backward-compatible
> >with previous versions.  Some modifications will be required to adopters'
> >..htaccess files and login forms.  Here's what mine look like.  The login form
> >can be on any page, allowing the user to log in at any time:
> >
> >  <form action=LOGIN method=GET>
> >   <input type=hidden name=destination value="<% $current_url %>">
> >   <input type=hidden name=AuthType value="<% $r->auth_type %>">
> >   <input type=hidden name=AuthName value="<% $r->auth_name %>">
> >   username:<br> <input type=text name=credential_0 size=13><br>
> >   password:<br> <input type=password name=credential_1 size=13><br>
> >   <input type=submit name=submit value=login>
> >  </form>
> >
> >My .htaccess file (in a /listeners/ directory) is as follows.  MMAuth is a
> >subclass of Apache::AuthCookie, implementing the authen_cred() and
> >authen_ses_key() methods.
> >
> >
> >  AuthType MMAuth
> >  AuthName Listener
> >  PerlSetVar ListenerPath /listeners/
> >  PerlSetVar ListenerLoginScript /listeners/login.pl
> >  PerlSetVar MMSessionExpiration 480
> >  PerlFixupHandler MMAuth->recognize_user
> >
> >  <Files LOGIN>
> >   SetHandler perl-script
> >   PerlHandler MMAuth->login
> >  </Files>
> >
> >  <Files ~ "^protected\.ma$">
> >   PerlAuthenHandler MMAuth->authen
> >   PerlAuthzHandler MMAuth->authz
> >   require valid-user
> >  </Files>
> >
> >Standard subclasses of Apache::AuthCookie should not require any
> >changes unless they're wacky (i.e. change more than just the
> >authen_cred() and authen_ses_key() methods).
> >
> >
> >
> >  -------------------                            -------------------
> >  Ken Williams                             Last Bastion of Euclidity
> >  [EMAIL PROTECTED]                            The Math Forum
> 
>   -------------                                           -------------
>   Ken Williams                   Tech                      Mirror Music
>   [EMAIL PROTECTED]                      http://www.mirrormusic.com
> 
> 
> 

--
Salon Internet                          http://www.salon.com/
  HTTP mechanic, Perl diver, Mebwaster, Some of the above
Ian Kallen <[EMAIL PROTECTED]> / AIM: iankallen / Fax: (415) 354-3326 

Reply via email to