linotp.useridresolver.HTTPIdResolver module

This module implements the UserIdResolver to access an user store via http and json

Dependencies: UserIdResolver

class linotp.useridresolver.HTTPIdResolver.IdResolver

Bases: UserIdResolver

checkMapping()

check the given sql field map against the sql table definition

Returns

checkPass(uid, password)

checkPass - checks the password for a given uid.

Parameters
  • uid (string) – userid to be checked

  • password (string) – user password

:return : true in case of success, false if password does not match :rtype : boolean

Todo

extend to support htpasswd passwords: http://httpd.apache.org/docs/2.2/misc/password_encryptions.html

close()

Hook to close down the resolver after one request

db_prefix = 'useridresolver.HTTPIdResolver.IdResolver'
classmethod getResolverClassDescriptor()

return the descriptor of the resolver, which is - the class name and - the config description

Returns

resolver description dict

Return type

dict

TODO: adjust

classmethod getResolverClassType()

provide the resolver type for registration

getResolverDescriptor()

return the descriptor of the resolver, which is - the class name and - the config description

Returns

resolver description dict

Return type

dict

getResolverId()

getResolverId - provide the resolver identifier

Returns

returns the resolver identifier string or empty string if not exist

:rtype : string

getResolverType()

getResolverType - return the type of the resolver

Returns

returns the string ‘sqlresolver’

Return type

string

getSearchFields()

return all fields on which a search could be made

Returns

dictionary of the search fields and their types

Return type

dict

getUserId(loginName)

return the userId which mappes to a loginname

Parameters

loginName (string) – login name of the user

Returns

userid - unique idenitfier for this unser

Return type

string

getUserInfo(userId)

return all user related information

@param userId: specied user @type userId: string @return: dictionary, containing all user related info @rtype: dict

getUserList(searchDict)

retrieve a list of users

Parameters

searchDict (dict) – dictionary of the search criterias

Returns

list of user descriptions (as dict)

getUsername(userId)

get the loginname from the given userid

Parameters

userId (string) – userid descriptor

Returns

loginname

Return type

string

loadConfig(config, conf='')

loadConfig - load the config for the resolver

Parameters
  • config (dict) – configuration for the sqlresolver

  • conf (string) – configuration postfix

classmethod setup(config=None, cache_dir=None)

this setup hook is triggered, when the server starts to serve the first request

Parameters

config (the linotp config dict) – the linotp config

static testconnection(params)

test the http connection - with a POST request on the userlist

dict: { ‘timeout’: u‘5’,

‘type’: u’http’,

‘password’: u’Test123!’, ‘authuser’: u’admin’, ‘certificate’: u’ ‘, ‘resolvername’: u’dadas’, ‘uri’: u’http://127.0.0.1:5001’,

‘userlist_request_path’: u’/admin/userlist’, ‘userlist_result_path’: u’/result/value’, ‘userlist_request_mapping’: u’{“username”:”{USERNAME}”,

“page”:”{PAGE}”}’,

‘userlist_result_mapping’: u’{}’,

‘userid_result_mapping’: u’{}’, ‘userid_request_path’: u’/admin/userlist’, ‘userid_request_mapping’: u’{“userid”:”{USERID}”,

“page”:”{PAGE}”}’,

‘userid_result_path’: u’/result/value’,

‘username_request_mapping’: u’{“username”:”{USERNAME}”,

“page”:”{PAGE}”}’

‘username_request_path’: u’/admin/userlist’} ‘username_result_path’: u’/result/value’, ‘username_result_mapping’: u’{}’,

linotp.useridresolver.HTTPIdResolver.urllib_encoded_dict(in_dict)

urllib requires the parameters to be in UTF-8

Parameters

in_dict – the incomming dictionary

Returns

return a UTF-8 encoded dictionary

linotp.useridresolver.HTTPIdResolver.urllib_request(url, parameter, username=None, password=None, method='POST', config=None, timeout=10.0)

build the urllib request and check the response for success or fail

Parameters
  • url – target url

  • parameter – additonal parameter to append to the url request

  • username – basic authentication with username (optional)

  • password – basic authentication with password (optional)

  • method – run an GET or POST request

  • config – in case of Proxy support, the proxy settings are taken from

  • timeout – timeout for waiting on connect/reply

Returns

the response of the request