Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#35300 closed defect (fixed)

subversion ignores Negotiate?

Reported by: 56h29g002@… Owned by: danielluke (Daniel J. Luke)
Priority: Normal Milestone:
Component: ports Version: 2.1.1
Keywords: GSSAPI Kerberos svn Cc: blair (Blair Zajac)
Port: subversion

Description

I'm trying to connect to a subversion repository hosted in Apache with Kerberos authentication (negotiate and password.) Macports' svn seems to refuse to use GSSAPI negotiation to authenticate. If I run the built-in svn instead (/usr/bin/svn), it connects fine using GSSAPI. Did I build svn wrong? I couldn't find a variant for either subversion or neon to enable GSSAPI or Kerberos.

Change History (15)

comment:1 Changed 12 years ago by 56h29g002@…

Some more context: I am running Mac OS 10.7.4, Macports 2.1.1, subversion @1.7.5_0+universal, neon @0.29.6_1+universal

comment:2 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: blair@… added
Owner: changed from macports-tickets@… to dluke@…

comment:3 Changed 12 years ago by danielluke (Daniel J. Luke)

Resolution: invalid
Status: newclosed

subversion uses cyrus-sasl for authentication, the MacPorts port doesn't build kerberos support by default. If you re-build cyrus-sasl2 with +kerberos things should work for you.

comment:4 Changed 12 years ago by 56h29g002@…

Resolution: invalid
Status: closedreopened

Thanks for looking into this! However, what I have active is cyrus-sasl2 @2.1.25_1+kerberos+universal.

comment:5 Changed 12 years ago by danielluke (Daniel J. Luke)

I don't have a kerberos setup to test with, so you're probably going to have to figure out what is wrong (and either provide a patch or gather enough information so I can put one together for you to test).

One thing that might make a difference is the build order of things. It's possible that subversion built against cyrus-sasl2 (-kerberos) won't do kerberos things even if you later install cyrus-sasl2+kerberos.

Is it possible that you did:

port install subversion
port -f uninstall cyrus-sasl2
port install cyrus-sasl2+kerberos

comment:6 Changed 12 years ago by 56h29g002@…

I never directly installed cyrus-sasl, something else brought it. I don't have a -kerberos version of it installed. Subversion was updated (rebuilt) yesterday.

comment:7 Changed 12 years ago by 56h29g002@…

So, if I'm gathering information, where do I look? Are there any particular logs that I should examine? Any experiments I should do?

comment:8 Changed 12 years ago by danielluke (Daniel J. Luke)

It would probably be worthwhile to re-test your setup with the latest subversion and cyrus-sasl2 ports

comment:9 Changed 12 years ago by danielluke (Daniel J. Luke)

Owner: changed from dluke@… to dluke@…
Status: reopenednew

comment:10 Changed 12 years ago by danielluke (Daniel J. Luke)

Resolution: fixed
Status: newclosed

I believe this was fixed with a later release of cyrus-sasl2

comment:11 Changed 12 years ago by fbacchella (Fabrice Bacchella)

Resolution: fixed
Status: closedreopened

I uninstalled everything, re-installed svn with :

sudo port install subversion +kerberos

And the connection failed :

$ svn  co http://svnserver/svn/sysop
svn: E170001: Unable to connect to a repository at URL 'http://svnserver/svn/sysop'
svn: E170001: OPTIONS of 'http://svnserver/svn/sysop': authorization failed: Could not authenticate to server: ignored Negotiate challenge (http://svnserver)

As my ports was empty, everything is up to date :

  apr @1.4.6_1 (active)
  apr-util @1.4.1_0 (active)
  curl-ca-bundle @7.28.0_0 (active)
  cyrus-sasl2 @2.1.25_2+kerberos (active)
  db46 @4.6.21_7 (active)
  expat @2.1.0_0 (active)
  gettext @0.18.1.1_2 (active)
  kerberos5 @1.7.2_0 (active)
  libedit @20120601-3.0_0 (active)
  libiconv @1.14_0 (active)
  ncurses @5.9_1 (active)
  neon @0.29.6_1 (active)
  openssl @1.0.1c_0 (active)
  serf1 @1.1.1_0 (active)
  sqlite3 @3.7.14.1_0 (active)
  subversion @1.7.7_0 (active)
  zlib @1.2.7_0 (active)

port is up to date too :

$ port version
Version: 2.1.2

It was working fine a few days ago, just before an upgrade. When I tcpdump the http exchange, I see the Authentication: negotiate from the server but svn ignore it.

comment:12 in reply to:  11 Changed 12 years ago by danielluke (Daniel J. Luke)

Replying to fbacchella@…:

And the connection failed :

$ svn  co http://svnserver/svn/sysop
svn: E170001: Unable to connect to a repository at URL 'http://svnserver/svn/sysop'
svn: E170001: OPTIONS of 'http://svnserver/svn/sysop': authorization failed: Could not authenticate to server: ignored Negotiate challenge (http://svnserver)

Do you have a public repo that reproduces this issue? (So that others can at least test?)

It was working fine a few days ago, just before an upgrade. When I tcpdump the http exchange, I see the Authentication: negotiate from the server but svn ignore it.

Just before an upgrade of what?

comment:13 Changed 12 years ago by fbacchella (Fabrice Bacchella)

After much investigation, it's not a problem with macports.

One should add :

[global]
http-auth-types = Negotiate

in there ~/.subversion/servers.

I think upstream changed the default settings in the last version, because it failed after an upgrade of macport's subversion from 1.7.6_2 to 1.7.7_0.

Sorry for the false ticket re-open.

comment:14 Changed 12 years ago by danielluke (Daniel J. Luke)

Resolution: fixed
Status: reopenedclosed

comment:15 in reply to:  13 Changed 12 years ago by danielluke (Daniel J. Luke)

Replying to fbacchella@…:

Sorry for the false ticket re-open.

Thanks for posting the fix, though. Hopefully if anyone else has the problem they'll see it when they search.

Note: See TracTickets for help on using tickets.