0

我有大问题。每次当我尝试连接到任何 jabber 服务器时,我都会收到“SASL 身份验证 DIGEST-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 身份验证 DIGEST-MD5 失败:invalid-authzid: at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java: 337) at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:203) at org.jivesoftware。 smack.Connection.login(Connection.java:348)

4

1 回答 1

0

不要使用toString()。尝试使用getPassword()代替,如此所示。即使使用 JTextField,您也应该使用getText()而不是toString()

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

于 2012-07-11T14:36:38.440 回答