Securing SimpleXMLRPCServer?
Brian Quinlan
brian at sweetapp.com
Wed Jul 10 20:15:41 EDT 2002
Here is some XML-RPC IP-based authentication code that works:
import sys, os, gzip, smtplib, SimpleXMLRPCServer, string
class
AuthenticatingSimpleXMLRPCRequestHandler(SimpleXMLRPCServer.SimpleXMLRPC
RequestHandler):
class UnknownIP(Exception): pass
def _dispatch( self, method, params ):
ip, port = self.client_address
if ip not in ["144.178.233.83","144.178.234.189", '127.0.0.1'] :
raise self.UnknownIP, "Client IP Is Not Authorised"
else:
SimpleXMLRPCServer.SimpleXMLRPCRequestHandler._dispatch(self, method,
params)
def GetFiles(FileRequest):
print FileRequest
RetrFile = open(FileRequest,"r")
FileContents = "Not Found"
for FileLine in RetrFile:
if FileContents == None:
FileContents = FileLine
else:
FileContents = FileContents + FileLine
return FileContents
if __name__== "__main__":
XMLRPCServer = SimpleXMLRPCServer.SimpleXMLRPCServer (
("127.0.0.1",8000), AuthenticatingSimpleXMLRPCRequestHandler )
XMLRPCServer.register_function(GetFiles)
XMLRPCServer.serve_forever()
> Thanks again for your help and patience.
If we ever meet in person, you owe me many beers :-)
Cheers,
Brian
More information about the Python-list
mailing list