Browse Source

HUE-219. Fix bug where SASL transport would have failed on wrapped SASL mechanisms

Todd Lipcon 15 years ago
parent
commit
b8abee8291
1 changed files with 6 additions and 1 deletions
  1. 6 1
      desktop/core/src/desktop/lib/thrift_sasl.py

+ 6 - 1
desktop/core/src/desktop/lib/thrift_sasl.py

@@ -128,7 +128,12 @@ class TSaslClientTransport(TTransportBase, CReadableTransport):
   def _read_frame(self):
   def _read_frame(self):
     header = self._trans.readAll(4)
     header = self._trans.readAll(4)
     (length,) = struct.unpack(">I", header)
     (length,) = struct.unpack(">I", header)
-    self.__rbuf = StringIO(self._trans.readAll(length))
+    encoded = self._trans.readAll(length)
+    success, decoded = self.sasl.decode(encoded)
+    if not success:
+      raise TTransportException(type=TTransportException.UNKNOWN,
+                                message=self.sasl.getError())
+    self.__rbuf = StringIO(decoded)
 
 
   def close(self):
   def close(self):
     self._trans.close()
     self._trans.close()