mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-30 02:02:06 +01:00
Fixed SASL authentication that required a realm like DIGEST-MD5.
git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@10429 b35dd754-fafc-0310-a699-88a17e54d16e
This commit is contained in:
parent
d23d36974f
commit
babc992e11
1 changed files with 5 additions and 3 deletions
|
@ -59,6 +59,7 @@ public abstract class SASLMechanism implements CallbackHandler {
|
||||||
protected SaslClient sc;
|
protected SaslClient sc;
|
||||||
protected String authenticationId;
|
protected String authenticationId;
|
||||||
protected String password;
|
protected String password;
|
||||||
|
protected String hostname;
|
||||||
|
|
||||||
|
|
||||||
public SASLMechanism(SASLAuthentication saslAuthentication) {
|
public SASLMechanism(SASLAuthentication saslAuthentication) {
|
||||||
|
@ -83,6 +84,7 @@ public abstract class SASLMechanism implements CallbackHandler {
|
||||||
//Set the authenticationID as the username, since they must be the same in this case.
|
//Set the authenticationID as the username, since they must be the same in this case.
|
||||||
this.authenticationId = username;
|
this.authenticationId = username;
|
||||||
this.password = password;
|
this.password = password;
|
||||||
|
this.hostname = host;
|
||||||
|
|
||||||
String[] mechanisms = { getName() };
|
String[] mechanisms = { getName() };
|
||||||
Map<String,String> props = new HashMap<String,String>();
|
Map<String,String> props = new HashMap<String,String>();
|
||||||
|
@ -115,7 +117,7 @@ public abstract class SASLMechanism implements CallbackHandler {
|
||||||
if(sc.hasInitialResponse()) {
|
if(sc.hasInitialResponse()) {
|
||||||
byte[] response = sc.evaluateChallenge(new byte[0]);
|
byte[] response = sc.evaluateChallenge(new byte[0]);
|
||||||
String authenticationText = Base64.encodeBytes(response,Base64.DONT_BREAK_LINES);
|
String authenticationText = Base64.encodeBytes(response,Base64.DONT_BREAK_LINES);
|
||||||
if(authenticationText != null && !authenticationText.equals("")) {
|
if(authenticationText != null && !authenticationText.equals("")) {
|
||||||
stanza.append(authenticationText);
|
stanza.append(authenticationText);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -184,8 +186,8 @@ public abstract class SASLMechanism implements CallbackHandler {
|
||||||
PasswordCallback pcb = (PasswordCallback)callbacks[i];
|
PasswordCallback pcb = (PasswordCallback)callbacks[i];
|
||||||
pcb.setPassword(password.toCharArray());
|
pcb.setPassword(password.toCharArray());
|
||||||
} else if(callbacks[i] instanceof RealmCallback) {
|
} else if(callbacks[i] instanceof RealmCallback) {
|
||||||
//unused
|
RealmCallback rcb = (RealmCallback)callbacks[i];
|
||||||
//RealmCallback rcb = (RealmCallback)callbacks[i];
|
rcb.setText(hostname);
|
||||||
} else if(callbacks[i] instanceof RealmChoiceCallback){
|
} else if(callbacks[i] instanceof RealmChoiceCallback){
|
||||||
//unused
|
//unused
|
||||||
//RealmChoiceCallback rccb = (RealmChoiceCallback)callbacks[i];
|
//RealmChoiceCallback rccb = (RealmChoiceCallback)callbacks[i];
|
||||||
|
|
Loading…
Reference in a new issue