TokenService
lib.User
User
User(self, username:str)
Represents a user, which can access services via tokens.
to_json
User.to_json(self)
Returns this object as a json string.
to_dict
User.to_dict(self)
Returns this object as a dict.
from_json
User.from_json(user:str)
Returns an user object from a json string.
from_dict
User.from_dict(userDict:dict)
Returns an user object from a dict.
lib.Token
Token
Token(self, servicename:str, access_token:str)
This token represents a simple password.
to_json
Token.to_json(self)
Returns this object as a json string.
to_dict
Token.to_dict(self)
Returns this object as a dict.
from_json
Token.from_json(tokenStr:str)
Returns a token object from a json string.
from_dict
Token.from_dict(tokenDict:dict)
Returns a token object from a dict.
OAuth2Token
OAuth2Token(self, servicename:str, access_token:str, refresh_token:str='', expiration_date:datetime.datetime=None)
Represents a token object.
from_token
OAuth2Token.from_token(token:lib.Token.Token, refresh_token:str='', expiration_date:datetime.datetime=None)
Convert the given Token into an oauth2token.
to_json
OAuth2Token.to_json(self)
Returns this object as a json string.
to_dict
OAuth2Token.to_dict(self)
Returns this object as a dict.
from_json
OAuth2Token.from_json(tokenStr:str)
Returns an oauthtoken object from a json string.
from_dict
OAuth2Token.from_dict(tokenDict:dict)
Returns an oauthtoken object from dict.
lib.Service
Service
Service(self, servicename:str)
Represents a service, which can be used in RDS. This service only allows username:password authentication.
to_json
Service.to_json(self)
Returns this object as a json string.
to_dict
Service.to_dict(self)
Returns this object as a dict.
from_json
Service.from_json(serviceStr:str)
Returns an service object from a json string.
from_dict
Service.from_dict(serviceDict:dict)
Returns an service object from a dict string.
OAuth2Service
OAuth2Service(self, servicename:str, authorize_url:str, refresh_url:str, client_id:str, client_secret:str)
Represents an OAuth2 service, which can be used in RDS. This service enables the oauth2 workflow.
refresh
OAuth2Service.refresh(self, token:lib.Token.OAuth2Token)
Refresh the given oauth2 token for specified user.
from_service
OAuth2Service.from_service(service:lib.Service.Service, authorize_url:str, refresh_url:str, client_id:str, client_secret:str)
Converts the given Service to an oauth2service.
to_json
OAuth2Service.to_json(self)
Returns this object as a json string.
to_dict
OAuth2Service.to_dict(self)
Returns this object as a dict.
from_json
OAuth2Service.from_json(serviceStr:str)
Returns an oauthservice object from a json string.
from_dict
OAuth2Service.from_dict(serviceDict:dict)
Returns an oauthservice object from a dict.
lib.TokenService
TokenService
TokenService(self, address=None)
secret
str(object=’') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.str() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to ‘strict’.
getOAuthURIForService
TokenService.getOAuthURIForService(self, service:lib.Service.Service) -> str
Returns authorize-url as String
for the given service.
getAllOAuthURIForService
TokenService.getAllOAuthURIForService(self) -> list
Returns a list
of String
which represents all authorize-urls for registered services.
getService
TokenService.getService(self, servicename:str) -> lib.Service.Service
Returns a dict like self.getAllServices, but for only a single servicename (str).
getAllServices
TokenService.getAllServices(self) -> list
Returns a list
of dict
which represents all registered services.
dict
use struct:
{
“jwt”: string (json / jwt)
}
jwt is base64 encoded, separated by dots, payload struct: { “servicename” “authorize_url” “date” }
internal_getDictWithStateFromService
TokenService.internal_getDictWithStateFromService(self, service:lib.Service.Service) -> dict
Internal use only
Returns a service as jwt encoded dict.
getAllServicesForUser
TokenService.getAllServicesForUser(self, user:lib.User.User) -> list
Returns a list
for all services which the user has registered a token for.
removeService
TokenService.removeService(self, service:lib.Service.Service) -> bool
Remove a registered service.
Returns True
for success.
Raise a ServiceNotFoundError
, if service was not found.
Notice: This function is currently discussed for removal.
addUser
TokenService.addUser(self, user:lib.User.User) -> bool
Adds the given user to the token storage.
Returns True
for success.
Raise an UserAlreadyRegisteredError
, if user already registered.
removeUser
TokenService.removeUser(self, user:lib.User.User) -> bool
Remove the given user from the token storage.
Returns True
for success.
Raise an UserNotfoundError
, if user was not found.
addTokenToUser
TokenService.addTokenToUser(self, token:lib.Token.Token, user:lib.User.User) -> bool
Adds the given token to user.
Returns True
for success.
Raise an UserNotFoundError
, if user not found.
Raise a ServiceNotFoundError
, if service not found.
removeTokenFromUser
TokenService.removeTokenFromUser(self, token:lib.Token.Token, user:lib.User.User) -> bool
Removes given token from user.
Returns True
for success.
Raise an UserNotFoundError
, if user not found.
Raise an TokenNotFoundError
, if token not found for user.
getTokenForServiceFromUser
TokenService.getTokenForServiceFromUser(self, service:lib.Service.Service, user:lib.User.User) -> bool
Returns the token from type Token (struct: servicename: str, access_token: str) for given service from given user.
Raise ServiceNotExistsError, if no token for service was found.
removeTokenForServiceFromUser
TokenService.removeTokenForServiceFromUser(self, service:lib.Service.Service, user:lib.User.User) -> bool
Remove the token for service from user.
Raise ServiceNotFoundError, if no token for service was found.
exchangeAuthCodeToAccessToken
TokenService.exchangeAuthCodeToAccessToken(self, code:str, service:Union[str, lib.Service.OAuth2Service]) -> lib.Token.OAuth2Token
Exchanges the given code
by the given service
lib.Exceptions.ServiceException
ServiceNotFoundError
ServiceNotFoundError(self, service:lib.Service.Service, msg=None)
Represents an error, when a service was not found.
TokenNotFoundError
TokenNotFoundError(self, token:lib.Token.Token, msg=None)
Represents an error, when a token was not found.
UserNotFoundError
UserNotFoundError(self, user:lib.User.User, msg=None)
Represents an error, when an user was not found.
UserHasTokenAlreadyError
UserHasTokenAlreadyError(self, user:lib.User.User, token:lib.Token.Token, msg=None)
Represents an error, when a user has already a token for the service.
UserAlreadyRegisteredError
UserAlreadyRegisteredError(self, user:lib.User.User, msg=None)
Represents an error, when a user-id is already registered.
CodeNotExchangeable
CodeNotExchangeable(self, code, service, msg=None)
Represents an error, when a given code for the oauth workflow could not be exchanged against an access_token.
Util
load_class_from_json
load_class_from_json(jsonStr:str)
Returns the class of the given json string.
load_class_from_dict
load_class_from_dict(data:dict)
Returns the class of the given dict.
initialize_object_from_json
initialize_object_from_json(jsonStr:str)
Initialize and returns an object of the given json string.
This is the easiest way to reverse the to_json method for objects from our lib folder.
initialize_object_from_dict
initialize_object_from_dict(jsonDict:dict)
Initialize and returns an object of the given dict.
This is another easy way to reverse the to_json method for objects from our lib folder.
internal_load_class
internal_load_class(data:dict)
For internal use only.
try_function_on_dict
try_function_on_dict(func:list)
This method trys the given functions on the given dictionary. Returns the first function, which returns a value for given dict.
Main purpose of this is the initialization of multiple Classes from json dicts.
Usage:
func_list = [func1, func2, func3]
x = Util.try_function_on_dict(func_list)
object = x(objDict)
equals to:
try:
try:
func1(objDict)
except:
pass
try:
func2(objDict)
except:
pass
try:
func3(objDict)
except:
pass
except:
raise Exception(...)
Raise an Exception
with all raised exception as strings, if no function returns a value for the given jsonDict.