Skip to content

Commit 9681d49

Browse files
committed
Fix HTTP basic authentication for Python 3
1 parent a92ec6d commit 9681d49

File tree

4 files changed

+20
-9
lines changed

4 files changed

+20
-9
lines changed

CHANGES.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ in progress
77
===========
88

99

10+
2021-09-29 0.26.2
11+
=================
12+
13+
- Fix HTTP basic authentication for Python 3 in plugins for HTTP, XBMC and Ionic.
14+
Thanks, @sumnerboy12!
15+
16+
1017
2021-06-19 0.26.1
1118
=================
1219

mqttwarn/services/http_urllib.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,11 @@ def plugin(srv, item):
2727
params = item.addrs[2]
2828
timeout = item.config.get('timeout', 60)
2929

30-
auth = None
30+
basicauth_token = None
3131
try:
3232
username, password = item.addrs[3]
33-
auth = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
33+
credentials = '%s:%s' % (username, password)
34+
basicauth_token = base64.b64encode(credentials.encode('utf-8')).decode()
3435
except:
3536
pass
3637

@@ -78,8 +79,8 @@ def plugin(srv, item):
7879

7980
if srv.SCRIPTNAME is not None:
8081
request.add_header('User-agent', srv.SCRIPTNAME)
81-
if auth is not None:
82-
request.add_header("Authorization", "Basic %s" % auth)
82+
if basicauth_token is not None:
83+
request.add_header("Authorization", "Basic %s" % basicauth_token)
8384

8485
resp = urllib.request.urlopen(request, timeout=timeout)
8586
data = resp.read()
@@ -111,8 +112,8 @@ def plugin(srv, item):
111112

112113
if srv.SCRIPTNAME is not None:
113114
request.add_header('User-agent', srv.SCRIPTNAME)
114-
if auth is not None:
115-
request.add_header("Authorization", "Basic %s" % auth)
115+
if basicauth_token is not None:
116+
request.add_header("Authorization", "Basic %s" % basicauth_token)
116117

117118
srv.logging.debug("before send")
118119
resp = urllib.request.urlopen(request, timeout=timeout)

mqttwarn/services/ionic.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,13 @@ def plugin(srv, item):
6060
handler = urllib.request.HTTPHandler()
6161
opener = urllib.request.build_opener(handler)
6262

63+
credentials = '%s:' % (appsecret)
64+
basicauth_token = base64.b64encode(credentials.encode('utf-8')).decode()
65+
6366
data = json.dumps(data)
6467
request = urllib.request.Request(resource, data=data.encode("utf-8"))
6568
request.add_header('X-Ionic-Application-Id', appid)
66-
request.add_header("Authorization", "Basic %s" % base64.encodestring('%s:' % appsecret).replace('\n', ''))
69+
request.add_header("Authorization", "Basic %s" % basicauth_token)
6770
request.add_header("Content-Type", 'application/json')
6871

6972
connection = opener.open(request, timeout=5)

mqttwarn/services/xbmc.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ def plugin(srv, item):
5252
req.add_header("Content-type", "application/json")
5353
if xbmcpassword is not None:
5454
credentials = '%s:%s' % (xbmcusername, xbmcpassword)
55-
base64string = base64.b64encode(credentials.encode('utf-8')).decode()
56-
authheader = "Basic %s" % base64string
55+
basicauth_token = base64.b64encode(credentials.encode('utf-8')).decode()
56+
authheader = "Basic %s" % basicauth_token
5757
req.add_header("Authorization", authheader)
5858
response = urllib.request.urlopen(req, timeout = 2)
5959
srv.logging.debug("Successfully sent XBMC notification")

0 commit comments

Comments
 (0)