Fix oidc-auth cli for python3

The response to oidc token request is bytes type. This is
fine with python2 as there is no distinguish between bytes
and string. But in python3, bytes and string are different,
causing some string operations (such as split(response, "\n"))
to fail. This is fixed by converting the bytes into string if
the script is run in python3.

Test Plan for Debian and CentOS:
PASS: python3-oidcauthtools package build.
PASS: With oidc-auth-apps applied and configured, run oidc-auth
      cli to get a token.

Closes-Bug: 1978963
Signed-off-by: Andy Ning <andy.ning@windriver.com>
Change-Id: I09e2ddab1b0ab44b0dd5aefebbe25624b3b67300
This commit is contained in:
Andy Ning 2022-06-16 09:31:30 -04:00
parent adde719f11
commit ffa3a8f637

View File

@ -9,6 +9,7 @@ import getopt, sys
import getpass
from argparse import ArgumentParser
import mechanize
import six
import ssl
def main():
@ -114,6 +115,11 @@ def main():
print("------------------")
stringResponse = dexLoginGrantAccessResponse.read()
# stringResponse is bytes type. In python3 bytes and str are different.
# Convert it to str so the following string operations will succeed.
if six.PY3:
stringResponse = stringResponse.decode()
if verbose:
print(stringResponse)