Re: Broken Negotiate NTLM auth, Squid 3.2

From: Steve Hill <steve_at_opendium.com>
Date: Tue, 11 Dec 2012 09:33:26 +0000

On 11.12.12 00:53, Amos Jeffries wrote:

> Before the first reconfigure there *should* only be one Config object
> for the auth scheme, from the first configuration loading.

That doesn't match what I've seen - I've added debugging to the top of
every function in auth_negotiate.cc. I start the server (so not a
reconfigure) and I get:

Auth::Negotiate::Config::configured() is called:
        this: 0x7f9bc2301160
        negotiateConfig: 0x7f9bc1bd0520
        authenticateProgram: 0x7f9bc22fe830

Auth::Negotiate::Config::init() is called:
        this: 0x7f9bc2301160
        negotiateConfig: 0x7f9bc1bd0520
        authenticateProgram: 0x7f9bc22fe830

Auth::Negotiate::Config::registerWithCacheManager() is called:
        this: 0x7f9bc2301160
        negotiateConfig: 0x7f9bc1bd0520
         authenticateProgram: 0x7f9bc22fe830

I then make a request:

Auth::Negotiate::Config::type() is called:
        this: 0x7f9bc2301160
        negotiateConfig: 0x7f9bc1bd0520
        authenticateProgram: 0x7f9bc22fe830

Auth::Negotiate::Config::type() is called again:
        this: 0x7f9bc2301160
        negotiateConfig: 0x7f9bc1bd0520
        authenticateProgram: 0x7f9bc22fe830

Auth::Negotiate::Config::decode() is called:
        this: 0x7f9bc2301160
        negotiateConfig: 0x7f9bc1bd0520
        authenticateProgram: 0x7f9bc22fe830

Auth::Negotiate::Config::type() is called again:
        this: 0x7f9bc2301160
        negotiateConfig: 0x7f9bc1bd0520
        authenticateProgram: 0x7f9bc22fe830

Auth::Negotiate::Config::type() is called again:
        this: 0x7f9bc2301160
        negotiateConfig: 0x7f9bc1bd0520
        authenticateProgram: 0x7f9bc22fe830

Auth::Negotiate::Config::fixHeader() is called:
        this: 0x7f9bc1bd0520
        negotiateConfig: 0x7f9bc1bd0520
        authenticateProgram: 0

 From the above debugging, it seems the only method being called on the
negotiateConfig instance is fixHeader(), and the negotiateConfig
instance never has authenticateProgram set.

I'm not sure where authenticateProgram is actually being set - the only
place within auth_negotiate.cc that I can see it being set is
Auth::Negotiate::Config::parse(), but that function doesn't ever seem to
be called (at least, debugs() statements placed in that function don't
produce any logging).

If negotiateConfig (0x7f9bc1bd0520) is the *current* configuration, what
is 0x7f9bc2301160 in the above debugging?

Where is negotiateConfig initialised with the current configuration?

-- 
  - Steve Hill
    Technical Director
    Opendium Limited     http://www.opendium.com
Direct contacts:
    Instant messager: xmpp:steve_at_opendium.com
    Email:            steve_at_opendium.com
    Phone:            sip:steve_at_opendium.com
Sales / enquiries contacts:
    Email:            sales_at_opendium.com
    Phone:            +44-844-9791439 / sip:sales_at_opendium.com
Support contacts:
    Email:            support_at_opendium.com
    Phone:            +44-844-4844916 / sip:support_at_opendium.com
Received on Tue Dec 11 2012 - 09:33:33 MST

This archive was generated by hypermail 2.2.0 : Tue Dec 11 2012 - 12:00:07 MST