my custom log method for logging users
I have rewritten log function in http_server so that I can log usernames and passwords. I got this mostly from a post in the archives but since I am using login manager with basic cookie authentication it needs to grab the cookie and do some work on it. The only problem I am having is that the base64.decode function throws a binascii.error when a user has some special characters in her username:password. This happens with the underscore character for sure, and maybe others...I haven't checkd for sure. Any ideas? I assume it is supposed to do this (or there is a bug in the base64 module), so what would anyone suggest as a solution? def log (self, bytes): user_agent=self.get_header('user-agent') if not user_agent: user_agent='' referer=self.get_header('referer') if not referer: referer='' k=self.get_header('cookie') cookie_name = '__ac' cookies={} cookie='?' lname = '?' password = '?' if k: parse_cookie(k, cookies) cookie=cookies.get(cookie_name, '') try : [lname, password] = split(decodestring(split(cookie)[-1]),':',1) except : pass self.channel.server.logger.log ( self.channel.addr[0], ' - "%s:%s" - %s - [%s] "%s" %d %d "%s" "%s"\n' % ( lname, password, cookie, self.log_date_string (time.time()), self.request, self.reply_code, bytes, referer, user_agent, ) ) TIA -- Erik Myllymaki erik@pacific-shores.com
participants (1)
-
Erik Myllymaki