Opened 12 years ago

Closed 12 years ago

#6464 closed defect (duplicate)

[Patch] pwhash does not work with trac 0.11.6

Reported by: Wichert Akkerman Owned by: John Hampton
Priority: normal Component: AccountManagerPlugin
Severity: critical Keywords:
Cc: Trac Release: 0.11


After upgrading to trac 0.11.6 and r7163 for AccountManagerPlugin I get this error:

  File "/srv/simplon/", line 134, in authenticate
    authname = authenticator.authenticate(req)
  File "/srv/simplon/", line 437, in wrap
    return func(self, *args, **kwds)
  File "/srv/simplon/", line 447, in authenticate
    req.environ['REMOTE_USER'] = self._remote_user(req)
  File "/srv/simplon/", line 474, in _remote_user
    if AccountManager(self.env).check_password(user, password):
  File "/srv/simplon/", line 140, in check_password
    valid = store.check_password(user, password)
  File "/srv/simplon/", line 76, in check_password
    return self.hash_method.check_hash(user, password, hash)
  File "/srv/simplon/", line 52, in check_hash
    user,password,realm = _encode(user, password, self.realm)
  File "/srv/simplon/", line 57, in _encode
    return [a.encode('utf-8') for a in args]
AttributeError: 'NoneType' object has no attribute 'encode'

I will attach the full traceback with context as an attachment.

Attachments (1)

traceback.txt (8.1 KB) - added by Wichert Akkerman 12 years ago.
Full traceback

Download all attachments as: .zip

Change History (4)

Changed 12 years ago by Wichert Akkerman

Attachment: traceback.txt added

Full traceback

comment:1 Changed 12 years ago by anonymous

The problems appears to be that the realm is now set to None, where it probably was an empty string before. For some reasong setting htdigest_realm in trac.ini did not work for me:

force_passwd_change = true
hash_method = HtDigestHashMethod
htdigest_realm = 
password_file = /srv/simplon/etc/passwd
password_store = SessionStore

I ended up using this patch which gets things working again:

---	(revision 7163)
+++	(working copy)
@@ -45,7 +45,8 @@
     realm = Option('account-manager', 'htdigest_realm')
     def generate_hash(self, user, password):
-        user,password,realm = _encode(user, password, self.realm)
+        realm = self.realm or ''
+        user,password,realm = _encode(user, password, realm)
         return ':'.join([realm, htdigest(user, realm, password)])
     def check_hash(self, user, password, hash):

comment:2 Changed 12 years ago by anonymous

Summary: pwhash does not work with trac 0.11.6[Patch] pwhash does not work with trac 0.11.6

comment:3 Changed 12 years ago by John Hampton

Resolution: duplicate
Status: newclosed

This is a duplicate of #6329 and #6453

Modify Ticket

Change Properties
Set your email in Preferences
as closed The owner will remain John Hampton.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment

E-mail address and name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.