signal handling oddity

Justin Johnson justinjohnson at
Mon Jun 9 20:56:49 CEST 2003

I overrode render as follows...  I know the self.send_response stuff is
wrong, and I'll have to replace it with something equivalent from
twisted.  My render method is getting called, but the authorization
header never appears, I believe because the server never challenges the
request, thus asking for username/password???  Do you know what needs to
be done to make this happen?

I appreciate your help.

	def render(self, request):
		headers = request.headers
		if headers.has_key("authorization"):
			print "has authorization key:", a["authorization"]
			real_auth = '%s:%s' % (config.adminUser, config.adminPassword)
			auth = a["authorization"]
			auth = auth.replace("Basic ","")
			decoded_auth = decodestring(auth)
			if not decoded_auth == real_auth:
				print "not authorized"
				return xmlrpc.XMLRPC.render(self, request)
			return xmlrpc.XMLRPC.render(self, request)

On 9 Jun 2003 15:00:13 -0000, "Moshe Zadka" <m at> said:
> On Mon, 09 Jun 2003, "Justin Johnson" <justinjohnson at> wrote:
> > Yeah, I was using twisted before for this server and it did handle
> > control-c correctly.  I was having problems getting authentication to
> > work though, so I ended up moving to SimpleXMLRPCServer and adding some
> > other code to get basic authentication to work.  I'm just not familiar
> > enough with twisted to know what to subclass/override, etc... to get
> > simple user/password authentication to work.
> Well, probably in the render() method of your resource, you do
> the checking of request.headers (there's no problem doing it
> manually), and if they're ok you call the parent's render()
> and otherwise you return a 401.
> -- 
> Moshe Zadka --
> Buffy: I don't like you hanging out with someone that... short.
> Riley: Yeah, a lot of young people nowadays are experimenting with
> shortness.
> Agile Programming Language --
> -- 

More information about the Python-list mailing list