gpt4 book ai didi

java - vysper 服务器登录失败

转载 作者:行者123 更新时间:2023-11-30 09:34:03 26 4
gpt4 key购买 nike

我正在制作一个 vysper xmpp 服务器。这是我的代码:

public static void main(String[] args) throws Exception {

XMPPServer server = new XMPPServer("myserver.org");

StorageProviderRegistry providerRegistry = new MemoryStorageProviderRegistry();

AccountManagement accountManagement = (AccountManagement) providerRegistry.retrieve(AccountManagement.class);

Entity user = EntityImpl.parseUnchecked("user@myserver.org");
accountManagement.addUser(user, "password");

server.setStorageProviderRegistry(providerRegistry);

server.addEndpoint(new TCPEndpoint())

server.setTLSCertificateInfo(new File("keystore.jks"), "boguspw");

//server.setTLSCertificateInfo(new File("bogus_mina_tls.cert"), "boguspw");

server.start();
System.out.println("Vysper server is running...");

server.addModule(new EntityTimeModule());
server.addModule(new VcardTempModule());
server.addModule(new XmppPingModule());
server.addModule(new PrivateDataModule());
}

我已经尝试了两个证书文件。 (keystore.jks,bogus_mina_tls.cert)

在我启动服务器后,它连接到它,并尝试登录但无法登录。

SmackConfiguration.setPacketReplyTimeout(5000);

    config = new ConnectionConfiguration("myserver.org", port, "localhost");
config.setSelfSignedCertificateEnabled(true);
config.setSecurityMode(ConnectionConfiguration.SecurityMode.enabled);
config.setSASLAuthenticationEnabled(true);

//config.setKeystorePath("keystore.jks");

//config.setTruststorePath("keystore.jks");

    config.setKeystorePath("bogus_mina_tls.cert");
config.setTruststorePath("bogus_mina_tls.cert");

config.setTruststorePassword("boguspw");

XMPPConnection.DEBUG_ENABLED = true;
connection = new XMPPConnection(config);

try {
connection.connect();

} catch (XMPPException e) {
System.out.println("Error connect");
e.printStackTrace();
}

System.out.println("Connected: " + connection.isConnected());

try {
System.out.println(connection.isAuthenticated());
connection.login("user", "password");

} catch (XMPPException e) {
System.out.println("Error login");
e.printStackTrace();
}

我发现了这个异常:

SASL authentication PLAIN failed: incorrect-encoding: 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) at com.protocol7.vysper.intro.WorkingClient.init(WorkingClient.java:57) at com.protocol7.vysper.intro.WorkingClient.(WorkingClient.java:27) at com.protocol7.vysper.intro.Runclient.main(Runclient.java:11)

我看过这些示例(1st2nd),但它们不起作用。

最佳答案

首先请注意,服务器证书不用于用户身份验证,它用于提供客户端和服务器之间的安全通信 channel 。

从日志中您可以看到您的身份验证方法是“SASL PLAIN”,使用用户名和密码。

在服务器上,您将用户名/密码设置为:

accountManagement.addUser("user@myserver.org", "password");

但是在你使用的客户端上

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

这与您发布的错误消息不符,但我建议您使用正确的用户/密码重试。

关于java - vysper 服务器登录失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11936636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com