From ce92afd3f2c14acb7e63188de6519cc84ed00c6c Mon Sep 17 00:00:00 2001 From: Ben Langfeld Date: Tue, 7 Apr 2015 13:22:55 -0300 Subject: [PATCH] Permit connecting with an alternative authcid This permits imitation of other users (for example, if usera@example.com is allowed to create a session as userb@example.com, he will provide the JID userb@example.com in , but use his own credentials in the the packet per SASL's separation of authzid and authcid. --- src/core.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core.js b/src/core.js index 22962050..0531d667 100644 --- a/src/core.js +++ b/src/core.js @@ -261,8 +261,9 @@ Candy.Core = (function(self, Strophe, $) { * (String) password - Password of the user * (String) nick - Nick of the user. Set one if you want to anonymously connect but preset a nick. If jidOrHost is a domain * and this param is not set, Candy will prompt for a nick. + * (String) authcid - Authentication identity (username) if different from the JID. */ - self.connect = function(jidOrHost, password, nick) { + self.connect = function(jidOrHost, password, nick, authcid) { // Reset before every connection attempt to make sure reconnections work after authfail, alltabsclosed, ... _connection.reset(); self.registerEventHandlers(); @@ -291,7 +292,7 @@ Candy.Core = (function(self, Strophe, $) { } // authentication - _connection.connect(_getEscapedJidFromJid(jidOrHost) + '/' + _options.resource, password, Candy.Core.Event.Strophe.Connect); + _connection.connect(_getEscapedJidFromJid(jidOrHost) + '/' + _options.resource, password, Candy.Core.Event.Strophe.Connect, undefined, undefined, undefined, authcid); if (nick) { _user = new self.ChatUser(jidOrHost, nick); } else {