Java Smack 3.2.2 SASL身份验证摘要-MD5失败:身份验证无效

Java Smack 3.2.2 SASL身份验证摘要-MD5失败:身份验证无效,java,smack,sasl,Java,Smack,Sasl,我有个大问题。每次我尝试连接任何jabber服务器时,都会收到“SASL身份验证摘要-MD5失败”通知。当我不使用JPasswordField时,我没有这个错误,但是在IM中使用JTextField是没有意义的。我已经尝试了我找到的每一种方法,但都是一样的 守则: private void bLoginAction(JTextField login, JPasswordField pass) { loginText = login.getText(); passText = pass.getPa

我有个大问题。每次我尝试连接任何jabber服务器时,都会收到“SASL身份验证摘要-MD5失败”通知。当我不使用JPasswordField时,我没有这个错误,但是在IM中使用JTextField是没有意义的。我已经尝试了我找到的每一种方法,但都是一样的

守则:

private void bLoginAction(JTextField login, JPasswordField pass) {
loginText = login.getText();
passText = pass.getPassword().toString();
String[] data = loginText.split("@");
Connection.DEBUG_ENABLED = true;
ConnectionConfiguration config = new ConnectionConfiguration(data[1], 5222);
Connection con = new XMPPConnection(config);
 try {
 con.connect();
 } catch (XMPPException e) {
 e.printStackTrace();
 }
try {
 con.login(loginText, passText);
 } catch (XMPPException e) {
 e.printStackTrace();
 }  
}
从printStackTrace()打印:

SASL身份验证摘要-MD5失败:身份验证无效:位于 org.jivesoftware.smack.saslauthentification.authenticate(saslauthentification.java: 337)在 org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:203) 位于org.jivesoftware.smack.Connection.login(Connection.java:348)

不要使用toString()。请尝试改用getPassword(),如图所示。即使使用JTextField,也应该使用getText()而不是toString()


这不是一个简单的问题,而是一个直接的Java问题。

非常感谢。它工作得很好!我只需要从char[]构建字符串。String passText=新字符串(pass.getPassword());如果有人需要这个;)