Class: NTLMServlet

Inherits:
WEBrick::HTTPServlet::AbstractServlet
  • Object
show all
Defined in:
lib/mechanize/test_case/ntlm_servlet.rb

Instance Method Summary collapse

Instance Method Details

#do_GET(req, res) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/mechanize/test_case/ntlm_servlet.rb', line 4

def do_GET(req, res)
  if req['Authorization'] =~ /^NTLM (.*)/ then
    authorization = $1.unpack('m*').first

    if authorization =~ /^NTLMSSP\000\001/ then
      type_2 = 'TlRMTVNTUAACAAAADAAMADAAAAABAoEAASNFZ4mr' \
        'ze8AAAAAAAAAAGIAYgA8AAAARABPAE0AQQBJAE4A' \
        'AgAMAEQATwBNAEEASQBOAAEADABTAEUAUgBWAEUA' \
        'UgAEABQAZABvAG0AYQBpAG4ALgBjAG8AbQADACIA' \
        'cwBlAHIAdgBlAHIALgBkAG8AbQBhAGkAbgAuAGMA' \
        'bwBtAAAAAAA='

      res['WWW-Authenticate'] = "NTLM #{type_2}"
      res.status = 401
    elsif authorization =~ /^NTLMSSP\000\003/ then
      res.body = 'ok'
    else
      res['WWW-Authenticate'] = 'NTLM'
      res.status = 401
    end
  else
    res['WWW-Authenticate'] = 'NTLM'
    res.status = 401
  end
end