def test_1(): rest = REST('http://localhost') cnf = create_model('C.T.T.T') cnf['tool']['issuer'] = 'http://example.com/op' cnf['tool']['sig'] = True qiss = quote_plus(cnf['tool']['issuer']) qtag = cnf['tool']['tag'] rest.write(qiss, qtag, cnf) _ecnf = rest.construct_config(qiss, qtag) assert set(_ecnf.keys()) == {'client', 'keys', 'tool'} assert set(_ecnf['client'].keys()) == { 'behaviour', 'client_prefs', 'registration_info' }
res = {'tool': tool} if cli_reg: res["client"] = {"registration_response": cli_reg} if prov_info: try: res['client']['provider_info'] = prov_info except KeyError: res['client'] = {'provider_info': prov_info} return port, res if __name__ == '__main__': sys.path.insert(0, '.') rest = REST('', '../entities') assigned_port = AssignedPorts('../aasigned_ports', 60000, 64000) for fil in sys.argv[1:]: if fil.endswith('.py'): print(fil) port, cnf = convert(fil[:-3]) try: iss = cnf['tool']['issuer'] except KeyError: iss = cnf['client']['provider_info']['issuer'] qiss = quote_plus(iss.lower()) if qiss.startswith('http'): qtag = quote_plus(cnf['tool']['tag']) fname = rest.entity_file_name(qiss, qtag) _key = '{}:{}'.format(qiss, qtag)
#!/usr/bin/env python3 import json from urllib.parse import quote_plus from oidctest.app_conf import REST from oidctest.ass_port import AssignedPorts old = REST('', entpath='entities') old_info = old.items() present = REST('', entpath='entities.present') present_info = present.items() assigned_port = AssignedPorts('./assigned_ports.json', 60001, 64000) assigned_port.load() pap = AssignedPorts('./assigned_ports.json.present', 60001, 64000) pap.load() def new_port(iss, tag, proposal=0): _k = pap.make_key(iss, tag) _p = 0 if proposal: if proposal not in assigned_port.values(): _p = proposal else: print("!!!! Can't use proposed port") if not _p: try: _p = pap[_k] except KeyError:
# '-x', dest='xport', action='store_true', help='ONLY for testing') parser.add_argument('-m', dest='path2port') parser.add_argument(dest="config") args = parser.parse_args() session_opts = { 'session.type': 'memory', 'session.cookie_expires': True, 'session.auto': True, 'session.timeout': 900 } sys.path.insert(0, ".") CONF = importlib.import_module(args.config) rest = REST(None, CONF.ENT_PATH, CONF.ENT_INFO) if args.tag: qtag = quote_plus(args.tag) else: qtag = 'default' ent_conf = None try: ent_conf = rest.construct_config(quote_plus(args.issuer), qtag) except Exception as err: print('iss:{}, tag:{}'.format(quote_plus(args.issuer), qtag)) for m in traceback.format_exception(*sys.exc_info()): print(m) exit() setup_logging("%s/rp_%s.log" % (SERVER_LOG_FOLDER, args.port), logger)
parser.add_argument('--hint', dest='login_hint') parser.add_argument('-i', dest='issuer') parser.add_argument('-l', dest='ui_locales') parser.add_argument('-L', dest='claims_locales') parser.add_argument('-p', dest='profile', default='C.T.T.T') parser.add_argument('-s', dest='sig', action='store_true') parser.add_argument('-t', dest='tag') parser.add_argument('-x', dest='extra', action='store_true') parser.add_argument('-w', dest='webfinger_email') parser.add_argument('-W', dest='webfinger_url') args = parser.parse_args() ent_info_path = '{}/entity_info'.format(args.entity_root) rest = REST('', '{}/entities'.format(args.entity_root), ent_info_path) cnf = create_model(args.profile, ent_info_path) for item in ['sig', 'enc', 'extra']: if getattr(args, item): cnf['tool'][item] = True for item in [ 'acr_values', 'login_hint', 'ui_locales', 'claims_locales', 'webfinger_url', 'webfinger_email', 'issuer', 'profile', 'tag' ]: v = getattr(args, item) if v: cnf['tool'][item] = v qiss = quote_plus(cnf['tool']['issuer'])