【问题标题】:Smack 3.2.2 SASL authentication DIGEST-MD5 failed: invalid-authzidSmack 3.2.2 SASL 身份验证 DIGEST-MD5 失败:invalid-authzid
【发布时间】:2012-07-11 04:51:21
【问题描述】:

我有大问题。每次当我尝试连接到任何 jabber 服务器时,我都会收到“SASL authentication DIGEST-MD5 failed”通知。我不使用 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:在 org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java: 第337章) org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:203) 在 org.jivesoftware.smack.Connection.login(Connection.java:348)

【问题讨论】:

    标签: java smack sasl


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢。它工作得很好!我只需要从 char[] 构建字符串。 String passText = new String ( pass.getPassword());如果有人需要这个;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    相关资源
    最近更新 更多