mahmoud
October 26, 2014, 11:53am
1
I’m using smack api 4.1 alpha I can connect to my server but login failed ( connection.login(username,password) )
org.jivesoftware.smack.SmackException: SASL Authentication failed. No known authentication mechanisims.
at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java: 251)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.login(XMPPTCPConnection.java:374)
at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java :353)
at test.Testclass.initt(Testclass.java:72)
at test.Testclass.main(Testclass.java:84)
my problem there selectedMechanism is equal to null I need to set mechanism to it
public void authenticate(String username, String password, String resource)
throws XMPPErrorException, SASLErrorException, IOException,
SmackException {
SASLMechanism selectedMechanism = selectMechanism();
if (selectedMechanism != null) {
currentMechanism = selectedMechanism;
synchronized (this) {
currentMechanism.authenticate(username, connection.getHost(),
connection.getServiceName(), password);
try {
// Wait until SASL negotiation finishes
wait(connection.getPacketReplyTimeout());
}
catch (InterruptedException e) {
// Ignore
}
}
maybeThrowException();
if (!authenticationSuccessful) {
throw new NoResponseException();
}
}
else {
throw new SmackException(
“SASL Authentication failed. No known authentication mechanisims.”);
}
}