I'm getting a type mismatch, so I assume that's what you mean by
"dispatching code". It almost looks like you're mixing up object and class
apply semantics, since your call looks like

      case r @ Req("badger" :: Nil, "", _) => new SimpleHttpBasicAuth(r){
        PlainTextResponse("DFGDF")
      }

The first problem is that the syntax you're using for SimpleHttpBasicAuth is
defining a new anonymous class, and it's not clear to me that that's what
you want. The second problem is that in your SimpleHttpBasicAuth class you
are asking for the request in the constructor *and* in the apply method
inherited from the HttpBasicAuthentication, so this syntax isn't going to
call apply, which *does* appear to be what you want. I'm not sure that
instantiating a new class for each request is the best approach. If you
don't mind me tossing in my two cents, here's how I might implement this:

trait HttpAuth {
  type PasswordLookup = (String) => String
  def apply(req : Req, realm : String, lookup : PasswordLookup)(success: =>
LiftResponse) : () => Can[LiftResponse]
}

object SimpleHttpAuth extends HttpAuth {
  override apply(...)(...) = () => {
    // check to see if auth was even sent
    // compare realms
    // extract user, compare sent password against lookup
  }
}

object DigestHttpAuth extends HttpAuth {
...
}

Just a rough idea, but from what I gather there's no need to use anything
other than static methods here since you really don't need to keep state
around (technically we need to remember recent nonces for Digest auth, but
that can easily be global). In any case, it looks interesting so far.

Derek

On Fri, Nov 21, 2008 at 7:22 AM, Tim Perrett <[EMAIL PROTECTED]> wrote:

>
> Guys,
>
> Im working on this http auth stuff - the code I have so far can be
> found here:
>
> http://github.com/timperrett/lift-http-auth-example/tree/master
>
> Right now i have a very strange error occurring with the dispatching
> code - i would appreciate it if someone can download it, take a look,
> and give some feedback on the direction im going with this.
>
> Cheers
>
> Tim
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to