我有很大的问题。每次当我尝试连接到任何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) 在org.jivesoftware.smack.Connection.login(Connection.java:348)
答案 0 :(得分:0)
不要使用 toString()。请尝试使用 getPassword(),如图所示here。即使使用JTextField,您也应该使用 getText()而不是 toString()。
这不是一个棘手的问题,而是一个直接的Java问题。