Morning all,

I'm investigating how to authenticate to an external http server that 
requires NTLM authentication with Akka's HTTP Client Side API. Like TLS, 
NTLM requires a handshake/context exchange and the lifetime of the context 
is bound to the tcp channel.

>From the streams documentation and code it looks like I would need to write 
a custom BidiFlow[HttpRequest, HttpResponse, ...] that can be joined to a 
Https or Http Flow[HttpRequest, HttpResponse, ...]


        |  +----------------------+                   
+---------------------------+ 
    I1 ~~> |  --------->   ---->  |   HttpRequest ->  |                     
      | 
        |  |   Auth Flow   |  401 |                   | Outgoing Http 
Connection  | 
    O2 <~~ |  <---------   <----  | <- HttpResponse   |                     
      | 
        |  +----------------------+                   
+---------------------------+ 
      (materialize a Future NTLM context)

The NTLM BidiFlow would need to withhold the body and send the negotiate 
token in an outgoing request, handle the incoming 401 response, extract and 
validate the challenge token and finally send the challenge response along 
with the body. I would need to materialize the NTLM context so users can 
validate the remote host and sign/verify/encryt/decrypt messages.

This approach requires some time to develop, I was hoping it would be 
possible to extend a base authentication trait or something? I have read up 
on using directives for authentication - but this appears to apply to 
server side routes. Is this BidiFlow approach sound/sensible or is there an 
easier way to do authentication

Thanks
Ian

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to