Java 尝试使用Smack登录到XMPP服务器会导致SASL中的“错误”;“未经授权”;
我正在尝试使用Smack登录到XMPP服务器。尝试登录时,我遇到以下错误: SASL身份验证失败:未授权 我已经能够使用具有相同凭据的PSI-IM连接并登录到服务器 这就是我目前拥有的: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);
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");