Adam Harding
unread,Jun 19, 2012, 1:38:23 PM6/19/12Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to xnat_di...@googlegroups.com
I've had some LDAP-authenticating user accounts become unable to log in after the users edited their *internal* accounts' passwords (using the "(Edit)" link -> Change Password in the form). The LDAP authenticator only attempts to use LDAP if StringUtils.isEmpty(XDATUser.getPrimaryPassword()) is true for the account attempting to log in, otherwise it tries using local login. I've tried empty-ifying the password (hash) simply by saying:
UPDATE xdat_user SET primary_password='' WHERE login='theUserName';
but this doesn't allow the account to log in; the behavior is the same. When I trace .getPrimaryPassword() for the account, I see that the old password (hash) has persisted rather than being emptied, despite its no longer being in the database at xdat_user.primary_password for the account (verified again with psql). This persists across restarts of the DBMS service and XNAT.
XDATUser.getPrimaryPassword() comes from the interface XdatUserI, implemented by XDATUser's ancestor AutoXdatUser, which is where it seems to use ItemWrapper.getStringProperty(String) from xft, etc...
So something is preventing this approach. What am I missing?
[Is the XNAT talking to the backing db I think it is? Thought of that: yes it is, but that's not to say the problem/fix couldn't be similarly naive.]