- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用适用于 Android 的 Smack 4.1 native 库来开发聊天应用程序。我能够在我的应用程序和我的服务器之间设置连接,但我在登录时收到有关 SASL 身份验证的 SmackException。
注意事项
我使用的是 eclipse Luna 和 JDK 1.7 版,我在 libs 文件夹中包含了以下库。
这是我用来建立连接的代码。
XMPPTCPConnectionConfiguration.Builder configBuilder = XMPPTCPConnectionConfiguration.builder();
configBuilder.setUsernameAndPassword(userName, pass);
configBuilder.setSecurityMode(XMPPTCPConnectionConfiguration.SecurityMode.disabled);
configBuilder.setResource("testServices");
configBuilder.setServiceName(DOMAIN);
configBuilder.setPort(PORT);
configBuilder.setHost(DOMAIN);
configBuilder.setDebuggerEnabled(true);
AbstractXMPPConnection connection = new XMPPTCPConnection(
configBuilder.build());
/** Connecting to the server */
try {
connection.connect();
Log.i(TAG, "Connected to " + connection.getHost());
} catch (SmackException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (XMPPException e) {
Log.e(TAG, "Failed to connect to " + connection.getHost());
Log.e(TAG, e.toString());
e.printStackTrace();
}
/** LogingIn to the server */
try {
//SASLMechanism.PLAIN();
//SASLAuthentication.("PLAIN", 0);
connection.login(userName, pass);
// connection.login();
} catch (XMPPException e) {
e.printStackTrace();
} catch (SmackException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
/** LogingOut from the server */
connection.disconnect();
这是我的 logcat 输出。
04-20 22:22:51.584: D/SMACK(8335): SENT (0): <stream:stream xmlns='jabber:client' to='my_server_url' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' from='10001@my_server_url' xml:lang='en'>
04-20 22:22:52.519: D/SMACK(8335): RECV (0): <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" version="1.0" id="0768491716592086" from="my_server_url">
04-20 22:22:53.744: D/SMACK(8335): RECV (0): <stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism></mechanisms></stream:features>
04-20 22:22:53.749: I/(8335): Connected to "smy_server_url"
04-21 12:24:55.815: I/(16566): SmackException to my_server_link.comorg.jivesoftware.smack.SmackException: SASL Authentication failed. No known authentication mechanisims.
04-20 22:22:53.754: W/System.err(8335): org.jivesoftware.smack.SmackException: SASL Authentication failed. No known authentication mechanisims.
04-20 22:22:53.759: W/System.err(8335): at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:254)
04-20 22:22:53.759: W/System.err(8335): at org.jivesoftware.smack.tcp.XMPPTCPConnection.loginNonAnonymously(XMPPTCPConnection.java:365)
04-20 22:22:53.759: W/System.err(8335): at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:452)
04-20 22:22:53.759: W/System.err(8335): at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:427)
04-20 22:22:53.759: W/System.err(8335): at com.epixoft.ui.LoginActivity$ConnectionTestTask.doInBackground(LoginActivity.java:120)
04-20 22:22:53.759: W/System.err(8335): at com.epixoft.ui.LoginActivity$ConnectionTestTask.doInBackground(LoginActivity.java:1)
04-20 22:22:53.759: W/System.err(8335): at android.os.AsyncTask$2.call(AsyncTask.java:288)
04-20 22:22:53.759: W/System.err(8335): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-20 22:22:53.759: W/System.err(8335): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
04-20 22:22:53.764: W/System.err(8335): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
04-20 22:22:53.764: W/System.err(8335): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
04-20 22:22:53.764: W/System.err(8335): at java.lang.Thread.run(Thread.java:841)
04-20 22:22:53.784: D/SMACK(8335): SENT (0): <presence id='PwoLk-3' type='unavailable'><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.igniterealtime.org/projects/smack' ver='NfJ3flI83zSdUDzCEICtbypursw='/></presence>
04-20 22:22:53.789: D/SMACK(8335): SENT (0): </stream:stream>
04-20 22:22:53.864: E/ViewRootImpl(8335): sendUserActionEvent() mView == null
在此先感谢您的帮助。干杯:)
最佳答案
经过一番努力,我终于找到了解决问题的方法。
我必须导入 smack-sasl-provided-4.1.0.jar
以消除此 SASL 身份验证错误。
关于android - Smack 4.1 SASL 认证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29755230/
我有操作系统 Red Hat Enterprise Linux Server release 7.4 (Maipo) 和 python Python 2.7.13 :: Anaconda 4.4.0
我在我的 Bluemix 应用程序中安装 sasl 时遇到以下错误: Installing collected packages: sasl, thrift-sasl
我正在处理有关 IM 的一些事情。它涉及XMPP。我在 Android 上开发了一个应用程序,所以我使用了 aSmack。我想登录 google talk,在这里(链接如下) https://deve
注意:我无法安装 libsasl2-dev,因为我没有管理员权限。 我构建了 cyrus-sasl-2.1.26.tar.gz: ./configure --prefix=/home/username
我对上述主题有几个问题,请你能帮助理解这些事情。 SASL/Plain 可以与 SSL 一起使用,也可以不与 SSL 一起使用。因此,如果不使用 SSL,则数据将被加密 和安全? 使用 SSL 的 S
尝试将 Message Hub Bluemix 服务与 Node 一起使用时,我收到错误:无法初始化 SASL 身份验证:SASL 握手失败(启动 (-4)):SASL(-4):没有可用机制:没有找到
我正在尝试将新用户添加到 SASL 数据库: saslpasswd2 -a memcached -c . 一旦我重复密码,我会收到以下错误: saslpasswd2: generic failur
我正在做一个涉及身份验证的项目,我不太明白 SASL 和 gssapi 之间的区别。 gssapi 是否在 SASL 的掩护下使用?我可以在没有 SASL 的情况下使用 gssapi 吗?正确的做法是
我正在尝试设置 SVN 以针对 ActiveDirectory 进行身份验证。我知道如果您将 SVN 设置为使用 Apache 提供服务,这是可能的,但这样做会引入太多开销,并且 SVN 运行速度太慢
为什么导入 javax.security.sasl.Sasl;不适用于 Android ???? 最佳答案 这不是 Google Android SDK 团队决定提供的 sun jdk 的一部分。支持
我已经在我的系统中配置了 svn 服务器,并为使用 SASL MD5 验证用户进行了以下配置。我在 svnserve.conf 中做了以下更改 [general] anon-access = no
我尝试在 Spring Boot 项目中设置一个 Mongo DB。我在 application.yml 中设置了一个 uri: spring: data: mongodb:
在我的代码中,在创建 TIdIMAP4 连接之前,我设置了一大堆 SASL 机制,希望按照规定的“最好到最差”顺序,如下所示: IMAP.SASLMechanisms.Add.SASL := mIdS
我们在 Windows Server 2008 上运行 RabbitMq 3.6.2 和 Erlang 17.4。我们在 sasl 日志中一遍又一遍地看到以下记录。它偶尔发生(每隔几个小时),没有特定
当我的应用程序崩溃时,我会收到一份需要 5 分钟滚动浏览的崩溃报告。处理这个问题的最佳方法是什么? 最佳答案 您可以将故障转储通过管道传输到文件。重要信息可能在顶部。 您可以按照 Hynek 上面所说
与许多 RabbitMQ 用户一样,我在 RabbitMQ 节点上看到一些大的 [MACHINE_NAME]-sasl.log 文件,除了 =PROGRESS REPORT==== 条目外什么都不包含
CentOS6.6、Postfix、dovecot 2.0.9 和 MySQL 5.1.73 dovecot 配置(/etc/dovecot/dovecot-sql.conf.ext): driver
我正在尝试制作一个 java 类,以便根据本地 SASL 对用户进行身份验证。我的 saslauthd 配置是这样的: $ cat /etc/sysconfig/saslauthd # Directo
我正在尝试在 ec2 两个实例上设置 zookeeper。如给定 here和 here . 我正在尝试运行因错误而失败的 zookeeper: 命令:bin/zkCli.sh -server loca
在 Zookeeper 和代理身份验证上启用 SASL 时,我遇到以下错误。 [2017-04-18 15:54:10,476] DEBUG Size of client SASL token: 0
我是一名优秀的程序员,十分优秀!