/usr/lib/python2.7/dist-packages/SoftLayer/auth.py is in python-softlayer 4.1.1-2ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | """
SoftLayer.auth
~~~~~~~~~~~~~~
Module with the supported auth mechanisms for the SoftLayer API
:license: MIT, see LICENSE for more details.
"""
# pylint: disable=no-self-use
__all__ = [
'BasicAuthentication',
'TokenAuthentication',
'BasicHTTPAuthentication',
'AuthenticationBase',
]
class AuthenticationBase(object):
"""A base authentication class intended to be overridden."""
def get_request(self, request):
"""Receives request options and returns request options.
:param options dict: dictionary of request options
"""
return request
def get_headers(self):
"""Return a dictionary of headers to be inserted for authentication.
.. deprecated:: 3.3.0
Use :func:`get_options` instead.
"""
return {}
class TokenAuthentication(AuthenticationBase):
"""Token-based authentication class.
:param user_id int: a user's id
:param auth_token str: a user's auth token, attained through
User_Customer::getPortalLoginToken
"""
def __init__(self, user_id, auth_token):
self.user_id = user_id
self.auth_token = auth_token
def get_request(self, request):
"""Sets token-based auth headers."""
request.headers['authenticate'] = {
'complexType': 'PortalLoginToken',
'userId': self.user_id,
'authToken': self.auth_token,
}
return request
def __repr__(self):
return "TokenAuthentication(%r)" % self.user_id
class BasicAuthentication(AuthenticationBase):
"""Token-based authentication class.
:param username str: a user's username
:param api_key str: a user's API key
"""
def __init__(self, username, api_key):
self.username = username
self.api_key = api_key
def get_request(self, request):
"""Sets token-based auth headers."""
request.headers['authenticate'] = {
'username': self.username,
'apiKey': self.api_key,
}
return request
def __repr__(self):
return "BasicAuthentication(username=%r)" % self.username
class BasicHTTPAuthentication(AuthenticationBase):
"""Token-based authentication class.
:param username str: a user's username
:param api_key str: a user's API key
"""
def __init__(self, username, api_key):
self.username = username
self.api_key = api_key
def get_request(self, request):
"""Sets token-based auth headers."""
request.transport_user = self.username
request.transport_password = self.api_key
return request
def __repr__(self):
return "BasicHTTPAuthentication(username=%r)" % self.username
|