PlainSaslServer doesn't check passwords
---------------------------------------

                 Key: QPID-474
                 URL: https://issues.apache.org/jira/browse/QPID-474
             Project: Qpid
          Issue Type: Bug
    Affects Versions: M1, M2
            Reporter: Martin Ritchie


This is a snippet from the evaluateresponse method

            String pwd = new String(response, authcidNullPosition + 1, 
passwordLen, "utf8");
            passwordCb.setPassword(pwd.toCharArray());
            AuthorizeCallback authzCb = new AuthorizeCallback(authzid, authzid);
            Callback[] callbacks = new Callback[]{nameCb, passwordCb, authzCb};
            _cbh.handle(callbacks);
            _complete = true;

// the authzCb is allways set to true!!! see UsernamePasswordInitialiser
//                 else if (callback instanceof AuthorizeCallback) {
//                    ((AuthorizeCallback) callback).setAuthorized(true);

// so this will always allow access.
            if (authzCb.isAuthorized())
            {
                _authorizationId = authzCb.getAuthenticationID();
                return null;
            }
            else
            {
                throw new SaslException("Authentication failed");
            }


What needs to be done:

This line is wrong:
            passwordCb.setPassword(pwd.toCharArray());

This is done in the PrincipalDatabases

So after the handle call

passwordCb.getPassword() should be compared to pwd verifying the password is 
correct.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to