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 -~----------~----~----~----~------~----~------~--~---