title: SSL/conceptual aspects of sharing a object via pythons DataProcess Object remotely
body: <p>Hello fellow inhabitants of the stackspace!
  I want to learn/elaborate on serving objects by remote shared object method</p>
  
  <pre><code>class ContainerFS():
      #contains stuffs, has its methods
      def sync(self):
           pass
      def dump(self):
           stuff()
  
  class DataManager(BaseManager):
      def get_data(self):
          pass
  
  
  class DataProcess(Process):
      def __init__(self, serverobj, authkey, public=False, port=11111):
          Process.__init__(self)
          self.authkey = authkey
          self.Obj = serverobj
          self.daemon = True
          self.port = port
          self.addr = '127.0.0.1'
          if public:
              self.addr = '0.0.0.0'
  
      def run(self):
          DataManager.register('get_data',
                               callable=lambda: self.Obj)
          manager = DataManager(
              address=(self.addr, self.port),
              authkey=self.authkey)
  
          srv = datamgr.get_server()
          srv.serve_forever()
  </code></pre>
  
  <p>The class ContainerFS is given as argument for serverobj. It then serves data to clients over a socket.</p>
  
  <p>the client works like this so far:</p>
  
  <pre><code>class DataClient(object):
      def __init__(self):
          pass
  
      def create(self, authkey):
          try:
              DataManager.register('get_data')
              self.m = DataManager(address=('127.0.0.1', 11111), authkey=authkey)
              return True
          except:
              return False
  
      def connect(self):
          try:
              self.m.connect()
              q = self.m.get_data()
              return q
          except:
              return False
  </code></pre>
  
  <p>Given that one can share a arbitrary python object and access its methods that way, there might be ALOT of interesting stuff coming from the fertile grounds of SO. So if you have some good ideas, please mix them in.</p>
  
  <p>I tried subclassing SocketServer and have it handle SSL that way, but I was not able to make it happen. How can I have lazy SSL with this thing? If SSL is no option could using ssh port forwarding socks magic be a sufficient alternative?</p>
  
  <p>Can I assert that a method call of the serverobj is valid somehow. If yes where should I go to: DataProcess, DataManager or the serverobj?</p>
  
  <p>Still doing this stuff without really understanding it. For instance, how could I use this DataManager sitting their empty?</p>
  
  <p>I feel exposing a python object that way is really not secure. So I should refrain from crafting my own homebaked 'security'. I like to assert False on my thoughts for testing by elaboration. Thats where I hope on you coming in.</p>
  
  <p>If I am unclear or seem to be making no point, plz indicate it. I am still new to everything..</p>