def do_GET(self): if self._check_request() == False: return if opt.sec_lv and self._check_acl_san() == False: self.send_error(401) return if self.path == '/wsdl': fiap = fiapProto.fiapProto(strict_check=True, debug=cf.debug) doc = fiap.getwsdl() self._send_response(doc, 'text/xml; charset=utf-8') return elif self.path.startswith('/?'): fiap = fiapProto.fiapProto(strict_check=True, tzname=self.tzname, debug=cf.debug) doc = fiap.parseGETRequest(self.path) if doc == None: self.log_message('ERROR: %s' % fiap.getemsg()) self.send_error(403, fiap.getemsg()) return self._send_response(doc, 'text/json; charset=utf-8') return else: msg = 'unknown path, %s' % self.path self.log_message('ERROR: %s' % msg) self.send_error(403, msg) return
def do_POST(self): if self._check_request() == False: return if opt.sec_lv and self._check_acl_san() == False: self.send_error(401) return fiap = fiapProto.fiapProto(requester_address=self.client_address, strict_check=True, tzname=cf.tzname, debug=cf.debug) if self.clen == -1 and False: # # XXX GUTP interop hack: accept in case of no content-length. # s = self.rfile.read() else: s = self.rfile.read(self.clen) #post_data = urlparse.parse_qs(s.rfile.read(length).decode('utf-8')) doc = None if cf.debug > 0: self.log_message('DEBUG: post body (len=%d): %s' % (self.clen, s.replace('\n\r',''))) if self.ctype.find('text/xml') != -1: # XXX should it compare with 0 ? doc = fiap.serverParseXML(s) elif self.ctype.find('text/json') != -1: doc = fiap.serverParseJSON(s) else: msg = 'invalid content-type (%s) is specified.' % self.ctype self.log_message('ERROR: %s' % msg) self.send_error(403, msg) return if doc == None: self.log_message('ERROR: %s' % fiap.getemsg()) self.send_error(403, fiap.getemsg()) return self._send_response(doc, self.ctype) return
def do_POST(self): if self._check_request() == False: return if opt.sec_lv and self._check_acl_san() == False: self.send_error(401) return fiap = fiapProto.fiapProto(cf, requester_address=self.client_address, strict_check=True, debug=cf.debug) if self.clen == -1 and False: # # XXX GUTP interop hack: accept in case of no content-length. # s = self.rfile.read() else: s = self.rfile.read(self.clen) #post_data = urlparse.parse_qs(s.rfile.read(length).decode('utf-8')) doc = None if cf.debug > 0: self.log_message('DEBUG: post body (len=%d): %s' % (self.clen, s.replace('\n\r',''))) if self.ctype.find('text/xml') != -1: # XXX should it compare with 0 ? doc = fiap.serverParseXML(s) elif self.ctype.find('text/json') != -1: doc = fiap.serverParseJSON(s) else: msg = 'invalid content-type (%s) is specified.' % self.ctype self.log_message('ERROR: %s' % msg) self.send_error(403, msg) return if doc == None: self.log_message('ERROR: %s' % fiap.getemsg()) self.send_error(403, fiap.getemsg()) return self._send_response(doc, self.ctype) return
# parse the configuration file if specified. # cf = fiapConfig.fiapConfig(opt.cfile, security_level=sec_lv, debug=opt.debug) if opt.debug: print 'DEBUG: reading request file.' if opt.bfile != None: fp = open(opt.bfile) else: fp = sys.stdin src = fp.read() if src == None: print 'ERROR: src document is nothing' exit(1) fiap = fiapProto.fiapProto(cf, debug=opt.debug) # # make a request # req_doc = '' if opt.req_to_xml == True: ctype = 'text/xml; charset=utf-8' if re.match('^\<\?xml', src): req_doc = src else: req_doc = fiap.JSONtoXML(src) else: ctype = 'text/json; charset=utf-8' if re.match('^\<\?xml', src) == None: req_doc = src
url, host = set_default_port(opt.url) if opt.debug >= 1: print 'DEBUG: connect to', host #soapGetAddressLocation(opt.wsdl) if opt.bfile != None: fp = open(opt.bfile) else: fp = sys.stdin src = fp.read() if src == None: print 'ERROR: src document is nothing' exit(1) fiap = fiapProto.fiapProto(debug=opt.debug) # # make a request # req_doc = '' if opt.req_to_xml == True: ctype = 'text/xml; charset=utf-8' if re.match('^\<\?xml', src): req_doc = src else: req_doc = fiap.JSONtoXML(src) else: ctype = 'text/json; charset=utf-8' if re.match('^\<\?xml', src) == None: req_doc = src