Java 尝试使用Smack登录到XMPP服务器会导致SASL中的“错误”;“未经授权”;

Java 尝试使用Smack登录到XMPP服务器会导致SASL中的“错误”;“未经授权”;,java,xmpp,smack,sasl,Java,Xmpp,Smack,Sasl,我正在尝试使用Smack登录到XMPP服务器。尝试登录时,我遇到以下错误: SASL身份验证失败:未授权 我已经能够使用具有相同凭据的PSI-IM连接并登录到服务器 这就是我目前拥有的: System.setProperty("smack.debugEnabled", "true"); XMPPConnection.DEBUG_ENABLED = true; SASLAuthentication.supportSASLMechanism("PLAIN", 0);

我正在尝试使用Smack登录到XMPP服务器。尝试登录时,我遇到以下错误:

SASL身份验证失败:未授权

我已经能够使用具有相同凭据的PSI-IM连接并登录到服务器

这就是我目前拥有的:

    System.setProperty("smack.debugEnabled", "true");
    XMPPConnection.DEBUG_ENABLED = true;

    SASLAuthentication.supportSASLMechanism("PLAIN", 0);

    ConnectionConfiguration configuration = new ConnectionConfiguration("chat.bla.com", 5223);
    configuration.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
    configuration.setSocketFactory(new DummySSLSocketFactory());
    configuration.setSASLAuthenticationEnabled(true);
    configuration.setDebuggerEnabled(true);
    configuration.setServiceName("bla.net");

    Connection connection = new XMPPConnection(configuration);

    try {
        connection.connect();
        connection.login("user@bla.net", "blablabla");
    } catch (XMPPException e) {
        e.printStackTrace();
    }
这是我正在使用的DummySlslSocketFactory:

我认为问题在于,当通过PSI连接时,我需要选择“遗留SSL”,但我不确定如何在Java中做到这一点

感谢您的帮助

请尝试
login()
,但不使用用户名中的域部分:

connection.login("user", "password");
不是


尝试不带域部分的
login()
,即
connection.login(“用户”、“blablabla”)啊,这就解决了。谢谢,这可能是因为用户名或密码错误。你救了我一天D
connection.login("user@example.org", "password");