Open laserson opened 9 years ago
Any updates on adding Kerberos support?
I'm using pywebhdfs and kerberos, and a neat solution (that requires an additionnal dependency) is to use https://github.com/requests/requests-kerberos, that works out of the box. Here is an exemple:
from requests_kerberos import HTTPKerberosAuth
from pywebhdfs.webhdfs import PyWebHdfsClient
auth = HTTPKerberosAuth()
hdfs_client = PyWebHdfsClient(request_extra_opts={'auth':auth})
# then use the client as usual
This obviously assumes that you have a correct Kerberos setup on the machine.
Hi @Thooms, Thanks for sharing this one. I tried this one (on Linux machine), but facing error "ImportError: No module named win32security" I'm new to python, can you please suggest how we can fix the issue? Appreciate your help!
$ uname -a
Linux 2.6.32-504.30.3.el6.x86_64 x86_64 x86_64 x86_64 GNU/Linux
$ PYTHONPATH=$HOME/pywebhdfs:$HOME/requests-kerberos:$HOME/kerberos-sspi-0.1 python
Python 2.6.6 (r266:84292, Jul 23 2015, 15:22:56)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from requests_kerberos import HTTPKerberosAuth
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/livy/scaas/requests-kerberos/requests_kerberos/__init__.py", line 17, in <module>
from .kerberos_ import HTTPKerberosAuth, REQUIRED, OPTIONAL, DISABLED
File "/home/livy/scaas/requests-kerberos/requests_kerberos/kerberos_.py", line 5, in <module>
import kerberos_sspi as kerberos
File "/home/livy/scaas/kerberos-sspi-0.1/kerberos_sspi.py", line 18, in <module>
import win32security
ImportError: No module named win32security
>>> quit()
$
instead of
>>> from requests_kerberos import HTTPKerberosAuth
try
>>> import kerberos
then you can see another error message more useful.
Instead of running on win32 system, I added LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib64
for kerberos. Because the error message of running 'import kerberos' was
ImportError: /venv_path/lib/python2.7/site-packages/kerberos.so: symbol gss_wrap_iov, version gssapi_krb5_2_MIT not defined in file libgssapi_krb5.so.2 with link time reference
HTTPKerberosAuth is NOT only for win32.
This may need a bit of refactoring to deal with the request objects correctly.