Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to kerberos instead of pykerberos #63

Closed
toabctl opened this issue Feb 26, 2016 · 24 comments
Closed

Switch to kerberos instead of pykerberos #63

toabctl opened this issue Feb 26, 2016 · 24 comments

Comments

@toabctl
Copy link

toabctl commented Feb 26, 2016

Distributions (openSUSE, Debian, Ubuntu, Fedora) already ship python-kerberos but nobody ships python-pykerberos . And both have the same kerberos.so so they are not installable in parallel.
Can you please switch to kerberos (from pypi) instead of using pykerberos? Looks anyway that pykerberos is just a fork of kerberos. Or am I missing something?

@Lukasa
Copy link
Member

Lukasa commented Feb 26, 2016

@toabctl The switch to PyKerberos was required because of limited support for Python 3 in the Kerberos library for a long time.

However, we can safely switch back.

@toabctl
Copy link
Author

toabctl commented Feb 26, 2016

@Lukasa So py3 support is now good in kerberos? Should I prepare a PR ?

@Lukasa
Copy link
Member

Lukasa commented Feb 26, 2016

I believe it is, yes.

@carsonyl
Copy link
Collaborator

There had been multiple requests and attempts at making the switch to PyKerberos: see #32, #38, #52, #56, #57. One of the claims was that PyKerberos is more actively maintained than python-kerberos, which certainly seemed true at the time.

@toabctl
Copy link
Author

toabctl commented Feb 26, 2016

@rbcarson hm. so are you saying that we should stay with pykerberos? And is it just changing the requirements.txt line or is there more todo for a switch?

@carsonyl
Copy link
Collaborator

@toabctl I have no preference. Are you able to test the change? We don't have any automated tests against a real server.

In addition to requirements.txt, it's also listed in setup.py's extras_require.

@behackett
Copy link

Apple is developing the kerberos package again. They just did a release on pypi in January. It appears to fully support python 3 now.

@behackett
Copy link

Scratch that. You can't currently switch to Apple's kerberos module. The context object it creates has to be explicitly freed by calling authGSSClientClean when you are done with it. Sadly, that causes issues under python 3.x:

https://www.calendarserver.org/ticket/936

@carsonyl
Copy link
Collaborator

carsonyl commented Jun 2, 2016

Note #76 from yesterday, in which Apple's Kerberos 1.2.4 has a bug involving the explicit principal support that was recently added to requests-kerberos (it would have been possible to avoid the issue with some refactoring requests-kerberos in though).

@danc86
Copy link

danc86 commented Jul 1, 2016

Is there any open issue against Apple's Kerberos for the problem observed in #76?

@carsonyl
Copy link
Collaborator

carsonyl commented Jul 1, 2016

Not that I know of, though their issue tracker is tricky to dig through. I don't think it's fixed in trunk.

@danc86
Copy link

danc86 commented Jul 1, 2016

Okay I filed: https://www.calendarserver.org/ticket/942

@spaetow
Copy link

spaetow commented Oct 26, 2016

Just be careful not to switch to a kerberos/gssapi object that does not fully support the GSSAPI standards. Using one that just does a subset does everyone a great disservice.

@tuukkamustonen
Copy link

apple/ccs-pykerberos#49 (https://www.calendarserver.org/ticket/942) was merged in apple/ccs-pykerberos#52 and the fix is in 1.2.5. Nothing blocking the change then?

@behackett
Copy link

I've sent two pull requests to ccs-pykerberos that, once merged, would allow requests-kerberos to switch with no code changes.

See apple/ccs-pykerberos#60 and apple/ccs-pykerberos#61.

@behackett
Copy link

behackett commented Mar 9, 2018

With the release of ccs-pykerberos 1.3.0 this change should be unblocked.

@jmehnle
Copy link

jmehnle commented May 23, 2018

Has a decision been made? Is requests-kerberos going to keep depending on pykerberos or switch to Apple's kerberos module?

@0xkag
Copy link

0xkag commented Sep 24, 2018

Can this be revisited?

Today I observed both pip install kerberos and pip install pykerberos (installed automatically as a dependency of requests_kerberos) dropping the same kerberos.so in site-packages. It happens silently, which is a bit dangerous. So then I googled and found this ticket.

My requirements.txt contains:

kerberos==1.3.0
requests==2.19.1
requests_kerberos==0.12.0

Given that it seems like pykerberos is abandoned (? I think) in favor of kerberos in PyPi, it seems worthwhile to resolve this conflict.

I suppose I can remove kerberos==1.3.0 and just use pykerberos installed by requests_kerberos but this is not a long-term solution.

@mkomitee
Copy link
Collaborator

The same one, or conflicting ones?

@mkomitee
Copy link
Collaborator

With the release of ccs-pykerberos 1.3.0 this change should be unblocked.

Did that include apple/ccs-pykerberos#70 as you noted was needed in #97?

@twosigmajab
Copy link
Member

Hi @Lukasa, interested in this too. Anything we can do to help make progress?

@nonsleepr
Copy link

It seems that right now kerberos package maintained better than pykerberos. The latter wasn't updated in 3 years while the former had fixed this year. It might be the time!

@jborean93
Copy link
Contributor

Ultimately both kerberos and pykerberos are old projects and should be avoided where possible. If you are running on Linux I highly recommend you use requests-gssapi which uses a similar API to this library but is based on the newer and definitely maintained gssapi project.

@jborean93
Copy link
Contributor

jborean93 commented Oct 30, 2021

This library will use pyspnego in the upcoming 0.13.x release which uses python-gssapi on Linux and it's own SSPI provider for Windows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests