You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Chris Custine (JIRA)" <ji...@apache.org> on 2007/07/24 22:01:05 UTC
[jira] Closed: (DIRSERVER-1007) SimpleAuthenticator rejects cached
one-way encrypted passwords
[ https://issues.apache.org/jira/browse/DIRSERVER-1007?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chris Custine closed DIRSERVER-1007.
------------------------------------
Resolution: Duplicate
Fix Version/s: 1.5.1
This duplicates DIRSERVER-901 and has been fixed for 1.5.1.
> SimpleAuthenticator rejects cached one-way encrypted passwords
> --------------------------------------------------------------
>
> Key: DIRSERVER-1007
> URL: https://issues.apache.org/jira/browse/DIRSERVER-1007
> Project: Directory ApacheDS
> Issue Type: Bug
> Affects Versions: 1.5.0
> Reporter: Jonah Beckford
> Priority: Minor
> Fix For: 1.5.1
>
>
> Conditions
> - userPassword is stored as {SHA} (or some other one-way encryption) in the DIT
> - authentication request has password credentials sent in plain text
> Behavior
> - The first authentication request is successful.
> - All subsequent requests fail
> Cause
> - The one-way encrypted password is stored in the credentialCache after the first request, and subsequent (plain text) requests don't match what is stored in the credentialCache
> Fix
> - Do the same match checking on each request, regardless whether in cache or not in cache
> - Change SimpleAuthenticator::authenticate from:
> if ( principal != null )
> {
> // Found ! Are the password equals ?
> credentialsMatch = Arrays.equals( credentials, principal.getUserPassword() );
> }
> else
> {
> // Not found :(...
> // Get the user password from the backend
> byte[] userPassword = lookupUserPassword( principalDn );
>
> ... BLOCK # 1 ...
> }
> to:
> // Get the user password (from the backend if not in the cache)
> byte[] userPassword = null;
> if (principal == null)
> userPassword = lookupUserPassword(principalDn);
> else
> userPassword = principal.getUserPassword();
> ... BLOCK # 1 ...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.