def _cp_dispatch(self, vpath): # Only get here if vpath != None ent = cherrypy.request.remote.ip logger.info('ent:{}, vpath: {}'.format(ent, vpath)) if len(vpath): if len(vpath) == 2: cherrypy.request.params['iss'] = unquote_plus(vpath.pop(0)) cherrypy.request.params['tag'] = unquote_plus(vpath.pop(0)) cherrypy.request.params['ev'] = init_events( cherrypy.request.path_info) return self
def _cp_dispatch(self, vpath): # Only get here if vpath != None ent = cherrypy.request.remote.ip logger.info('ent:{}, vpath: {}'.format(ent, vpath)) if vpath[0] == 'static': return vpath if len(vpath) >= 2: ev = init_events(cherrypy.request.path_info, 'Test tool version:{}'.format(self.version)) oper_id = vpath.pop(0) test_id = vpath.pop(0) # verify test_id try: self.flows[test_id] except KeyError: raise cherrypy.HTTPError(400, 'Unknown TestID') if len(vpath): if len(vpath) == 1: endpoint = vpath.pop(0) op = self.op_handler.get(oper_id, test_id, ev, endpoint)[0] cherrypy.request.params['op'] = op if endpoint == 'registration': return self.registration elif endpoint == 'authorization': return self.authorization elif endpoint == 'token': return self.token elif endpoint == 'userinfo': return self.userinfo elif endpoint == 'claim': return self.claims elif endpoint == 'reset': return self.reset else: # Shouldn't be any other raise cherrypy.NotFound() if len(vpath) == 2: a = vpath.pop(0) b = vpath.pop(0) endpoint = '{}/{}'.format(a, b) if endpoint == ".well-known/openid-configuration": op = self.op_handler.get(oper_id, test_id, ev, endpoint)[0] cherrypy.request.params['op'] = op return self.configuration return self
def _cp_dispatch(self, vpath): # Only get here if vpath != None ent = cherrypy.request.remote.ip logger.info('ent:{}, vpath: {}'.format(ent, vpath)) if len(vpath): cherrypy.request.params['iiss'] = vpath.pop(0) ev = init_events(cherrypy.request.path_info) if len(vpath): cherrypy.request.params['itag'] = vpath.pop(0) return self.show_tag else: return self.list_tag
def index(self, resource, rel): ev = init_events('/.well-known/webfinger', 'Test tool version:{}'.format(self.version)) ev.store(EV_REQUEST, Operation('WebFinger', resource=resource, rel=rel)) if rel != 'http://openid.net/specs/connect/1.0/issuer': ev.store( EV_FAULT, FailedOperation('Webfinger', error='unknown rel', rel=rel)) try: op_id, test_id = parse_resource(resource) except (ValueError, TypeError): logger.error('webfinger resource specification faulty') raise cherrypy.HTTPError( 400, 'webfinger resource specification faulty') else: write_events(ev, op_id, test_id) raise cherrypy.NotFound() try: op_id, test_id = parse_resource(resource) except (ValueError, TypeError): logger.error('webfinger resource specification faulty') raise cherrypy.HTTPError( 400, 'webfinger resource specification faulty') else: _path = '/'.join([op_id, test_id]) cnf = cherrypy.request.config subj = resource _base = cnf['base_url'] dummy = None # introducing an error if 'rp-discovery-webfinger-http-href' in resource: _base = _base.replace('https', 'http') if 'rp-discovery-webfinger-unknown-member' in resource: dummy = "foobar" if _base.endswith('/'): href = '{}{}'.format(_base, _path) else: href = '{}/{}'.format(_base, _path) ev.store(EV_RESPONSE, Operation('Webfinger', href=href, subj=resource, dummy=dummy)) write_events(ev, op_id, test_id) return self.srv.response(subj, href, dummy=dummy)
def index(self, resource, rel): ev = init_events('/.well-known/webfinger', 'Test tool version:{}'.format(self.version)) ev.store(EV_REQUEST, Operation('WebFinger', resource=resource, rel=rel)) if rel != 'http://openid.net/specs/connect/1.0/issuer': ev.store(EV_FAULT, FailedOperation('Webfinger', error='unknown rel', rel=rel)) try: op_id, test_id = parse_resource(resource) except (ValueError, TypeError): logger.error('webfinger resource specification faulty') raise cherrypy.HTTPError( 400, 'webfinger resource specification faulty') else: write_events(ev, op_id, test_id) raise cherrypy.NotFound() try: op_id, test_id = parse_resource(resource) except (ValueError, TypeError): logger.error('webfinger resource specification faulty') raise cherrypy.HTTPError( 400, 'webfinger resource specification faulty') else: _path = '/'.join([op_id, test_id]) cnf = cherrypy.request.config subj = resource _base = cnf['base_url'] dummy = None # introducing an error if 'rp-discovery-webfinger-http-href' in resource: _base = _base.replace('https', 'http') if 'rp-discovery-webfinger-unknown-member' in resource: dummy = "foobar" if _base.endswith('/'): href = '{}{}'.format(_base, _path) else: href = '{}/{}'.format(_base, _path) ev.store(EV_RESPONSE, Operation('Webfinger', href=href, subj=resource, dummy=dummy)) write_events(ev, op_id, test_id) resp = self.srv.response(subj, href, dummy=dummy) cherrypy.response.headers['Content-Type'] = 'application/jrd+json' return as_bytes(resp)
def _cp_dispatch(self, vpath): # Only get here if vpath != None ent = cherrypy.request.remote.ip logger.info('ent:{}, vpath: {}'.format(ent, vpath)) if len(vpath) >= 1: ev = init_events(cherrypy.request.path_info, 'Test tool version:{}'.format(self.version)) # e.g https://rp-test:8080/rp/mod_auth_openidc/rp-3rd_party-init-login/OLtakKrycmtj rp_id = vpath.pop(0) test_id = vpath.pop(0) client_id = vpath.pop(0) endpoint = '' op = self.op_handler.get(rp_id, test_id, ev, endpoint)[0] cherrypy.request.params['op'] = op cherrypy.request.params['test_id'] = test_id cherrypy.request.params['client_id'] = client_id return self.instance else: raise cherrypy.HTTPError(400, 'Unknown vpath stuffy')