Skip to content

Commit 19e2468

Browse files
FahrenbergerFahrenberger
Fahrenberger
authored and
Fahrenberger
committed
Added option for token authentication.
1 parent 9765dba commit 19e2468

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

v1pysdk/client.py

+20-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,21 @@ class V1AssetNotFoundError(V1Error): pass
4747
class V1Server(object):
4848
"Accesses a V1 HTTP server as a client of the XML API protocol"
4949

50-
def __init__(self, address="localhost", instance="VersionOne.Web", username='', password='', scheme="http", instance_url=None, logparent=None, loglevel=logging.ERROR):
50+
def __init__(self, address="localhost", instance="VersionOne.Web", username='', password='', token=None, scheme="http", instance_url=None, logparent=None, loglevel=logging.ERROR):
51+
"""
52+
If *instance_url* is set its value will override address, instance,
53+
scheme and object's instance_url attributes.
54+
If *token* is not None a HTTP header will be added to each request.
55+
:param address: target hostname
56+
:param instance: instance
57+
:param username: credentials (username)
58+
:param password: credentials (password)
59+
:param token: credentials (authentication token)
60+
:param scheme: HTTP scheme
61+
:param instance_url: instance URL
62+
:param logparent: logger prefix
63+
:param loglevel: logging level
64+
"""
5165
if instance_url:
5266
self.instance_url = instance_url
5367
parsed = urlparse(instance_url)
@@ -66,6 +80,8 @@ def __init__(self, address="localhost", instance="VersionOne.Web", username='',
6680
self.logger.setLevel(loglevel)
6781
self.username = username
6882
self.password = password
83+
if token:
84+
self.token = token
6985
self._install_opener()
7086

7187
def _install_opener(self):
@@ -74,6 +90,9 @@ def _install_opener(self):
7490
password_manager.add_password(None, base_url, self.username, self.password)
7591
handlers = [HandlerClass(password_manager) for HandlerClass in AUTH_HANDLERS]
7692
self.opener = urllib2.build_opener(*handlers)
93+
if self.token:
94+
self.opener.addheaders.append(
95+
('Authorization', 'Bearer {token}'.format(token=self.token)))
7796
self.opener.add_handler(HTTPCookieProcessor())
7897

7998
def http_get(self, url):

0 commit comments

Comments
 (0)