Skip to content

Commit 2abbcbf

Browse files
Properly use base64 for request headers
This wasn't needed for requests-kerberos because pykerberos automatically base64 encodes and decodes messages from Kerberos, which is a behavior I do not like at all. Signed-off-by: Robbie Harwood <[email protected]>
1 parent 68bada2 commit 2abbcbf

File tree

2 files changed

+69
-60
lines changed

2 files changed

+69
-60
lines changed

requests_gssapi/gssapi_.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import re
22
import logging
33

4+
from base64 import b64encode, b64decode
5+
46
import gssapi
57

68
from requests.auth import AuthBase
@@ -73,7 +75,7 @@ def _negotiate_value(response):
7375
if authreq:
7476
match_obj = regex.search(authreq)
7577
if match_obj:
76-
return match_obj.group(1)
78+
return b64decode(match_obj.group(1))
7779

7880
return None
7981

@@ -144,7 +146,7 @@ def generate_request_header(self, response, host, is_preemptive=False):
144146
gss_response = self.context[host].step(
145147
_negotiate_value(response))
146148

147-
return "Negotiate {0}".format(gss_response)
149+
return "Negotiate {0}".format(b64encode(gss_response).decode())
148150

149151
except gssapi.exceptions.GSSError as error:
150152
msg = error.gen_message()

0 commit comments

Comments
 (0)