我有一个带有3个节点的kerberised cdhv5.14集群
baseurl = "http://<host_name>:50070/webhdfs/v1/prod/?op=LISTSTATUS"
__, krb_context = kerberos.authGSSClientInit("HTTP/<host_name>")
# kerberos.authGSSClientStep(krb_context, "")
negotiate_details = kerberos.authGSSClientResponse(krb_context)
headers = {"Authorization": "Negotiate " + str(negotiate_details)}
r = requests.get(baseurl, headers=headers)
print r.status_code
返回以下错误
GSSException: Defective
token detected (Mechanism level: GSSHeader did not find the right tag)
HTTP ERROR 403
但是当我使用curl运行它时,同样的方法也很好
curl -i --negotiate -u: http://<host_name>:50070/webhdfs/v1/prod/?op=LISTSTATUS
http/1.1 401身份验证要求缓存控制:必须重新验证,无缓存,无存储日期:2018年5月30日星期三02:50:04 gmt pragma:无缓存日期:2018年5月30日星期三02:50:04 gmt pragma:无缓存内容类型:text/html;charset=iso-8859-1 x-frame-options:sameorigin www authenticate:negotiate set cookie:hadoop.auth=;路径=/;httponly内容长度:1409
http/1.1 200确定缓存控制:无缓存过期:2018年5月30日星期三02:50:04 gmt日期:2018年5月30日星期三02:50:04 gmt pragma:无缓存过期:2018年5月30日星期三02:50:04 gmt日期:星期三,2018年5月30日02:50:04 gmt pragma:无缓存内容类型:application/json x-frame-options:sameorigin www验证:协商ygygcsqgsib3egecagiab1cwvaadagefoqmcaq+istbhoamacariqq+6seu0ssygmoqn4hdyksq55zcp+jubo/jk8/bgjok5ncmdlbrfpmsbczxvvjnhlg9ipacgvm8v0jqxtm5ufq=set cookie:hadoop.auth=“u=x&p=x@hostname&t=kerberos&e=1527684604664&s=tvsresdmbgv0to8hopp8mlxyiso="; 路径=/;httponly传输编码:分块
它给出了正确的答案,我在这里遗漏了什么?感谢您的帮助。
暂无答案!
目前还没有任何答案,快来回答吧!