Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8033773

NTLM HTTP authentication sends incorrect NTLMSSP_AUTH data

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P3 P3
    • tbd
    • 7u51
    • core-libs
    • x86_64
    • linux_ubuntu

      FULL PRODUCT VERSION :
      java version "1.7.0_51"
      Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
      Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Linux 3.11.0-15-generic #23-Ubuntu SMP Mon Dec 9 18:17:04 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

      A DESCRIPTION OF THE PROBLEM :
      NTLM username/password authentication (supplied with Authenticator.getPasswordAuthentication()) does not work with JRE client. In the same environment, all other tested clients works correctly: browser, wget, curl, Apache HttpAsyncClient.

      According to Wireshark, Java-generated NTLMSSP_AUTH (NTLM phase 3) data is malformed, however I can't determine an exact problem with it.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Try accessing NTLM-protected HTTP server (tested with IIS 7.5)

      ACTUAL -
      Below is an excerpt from network dump of a single HTTP connection:

      Client sends NTLMSSP_NEGOTIATE
      Authorization: NTLM TlRMTVNTUAABAAAAA7IIAAYABgArAAAACwALACAAAABMSUdIVE9aRS1QQ2RvbWFpbg==

      Server replies with NTLMSSP_CHALLENGE
      WWW-Authenticate: NTLM TlRMTVNTUAACAAAABgAGADgAAAAFgokCFUeeczHgYPUAAAAAAAAAAAIBAgE+AAAABgGxHQAAAA9FAE0AVgACAAYARQBNAFYAAQAUAFQAQwBBAE0AQQBEAE0AVwBFAEIABAA6AGUAbQB2AC4AZQBuAGUAcgBnAGkAYQBtAGEAcgBrAGsAaQBuAGEAdgBpAHIAYQBzAHQAbwAuAGYAaQADAFAAVABDAEEATQBBAEQATQBXAEUAQgAuAGUAbQB2AC4AZQBuAGUAcgBnAGkAYQBtAGEAcgBrAGsAaQBuAGEAdgBpAHIAYQBzAHQAbwAuAGYAaQAFADoAZQBtAHYALgBlAG4AZQByAGcAaQBhAG0AYQByAGsAawBpAG4AYQB2AGkAcgBhAHMAdABvAC4AZgBpAAcACACgyuErYBzPAQAAAAA=

      Client continues with NTLMSSP_AUTH
      Authorization: NTLM TlRMTVNTUAADAAAAGAAYAF4AAAAyADIAdgAAAAYABgBAAAAAAgACAEYAAAAWABYASAAAAAAAAACoAAAAAYIIAEUATQBWAGEATABJAEcASABUAE8AWgBFAC0AUABDAITiIm1pDVCQtMm7dxXUwVyul5v2jMYLkMR69b9xS2YyYdWhk/6zLKQBAQAAAAAAAIDmHyxgHM8Brpeb9ozGC5AAAAAAAgAAAAAA

      Authentication fails, client will retry multiple times until retry limit is reached.
      HTTP/1.1 401 Unauthorized
      WWW-Authenticate: Negotiate
      WWW-Authenticate: NTLM

      REPRODUCIBILITY :
      This bug can be reproduced always.

      CUSTOMER SUBMITTED WORKAROUND :
      Apache HttpComponents HttpAsyncClient works correctly in the same environment.

            chegar Chris Hegarty
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: