smack登录服务器时报错,SASL Authentication failed. No known authentication mechanisims

Old_Rookie_Su 2015-05-27 10:28:03
用smack登录openfire服务器时,报SASL鉴权失败,哪位大腿知道怎么解决这问题,帮忙看看~
smack版本是4.1.1


TestIQ reg = new TestIQ (from,serviceName,"",orgId);

Builder builder = XMPPTCPConnectionConfiguration.builder();
builder.setServiceName(SERVICE_NAME);
builder.setUsernameAndPassword(USER_NAME, PASSWD);
builder.setCompressionEnabled(false);
builder.setSecurityMode(SecurityMode.disabled);
builder.setSendPresence(false);
XMPPTCPConnection connection = new XMPPTCPConnection(builder.build());

StanzaFilter filter = new AndFilter(new StanzaIdFilter(reg.getStanzaId()), new PacketTypeFilter(TestIQ.class));
PacketCollector collector = connection.createPacketCollector(filter);

try {
connection.connect();
connection.login();//----------在这报错
connection.sendStanza(reg);
}
....


错误信息:

org.jivesoftware.smack.SmackException: SASL Authentication failed. No known authentication mechanisims.
at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:254)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.loginNonAnonymously(XMPPTCPConnection.java:365)
at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:452)
at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:410)
at com.star.extInterface.impl.XMPPServerInterfaceImpl.getOrgInfoById(XMPPServerInterfaceImpl.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
...全文
1458 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lesaqiu 2015-12-07
  • 打赏
  • 举报
回复
楼上正解。 我对于SASLAuthentication.blacklistSASLMechanism("SCRAM-SHA-1")或者SASLAuthentication.unBlacklistSASLMechanism(SCRAM-SHA-1) 都试过了还是报错,加入smack-sasl-provided-4.1.4.jar包后,再报SASLError using SCRAM-SHA-1: not-authorized之类的错误,利用这句SASLAuthentication.blacklistSASLMechanism("SCRAM-SHA-1"),将相应机制隐掉就可以了
siren_Z 2015-10-12
  • 打赏
  • 举报
回复
缺少的是sasl-provided这个包,加上就没有这个问题了
shawnzhang163 2015-09-02
  • 打赏
  • 举报
回复
引用 4 楼 u010852914 的回复:
我发现是我 jar包没加全,我现在实现了 登录与消息的发送接收 你遇到什么问题了
我是初学smack,在android上用smack实在不知道怎么入门,能发个例子学学吗?先谢谢了。489610171@qq.com
仲夏未眠 2015-06-17
  • 打赏
  • 举报
回复
4.1.1文档好少啊……我也在搞,官方又推荐用AS,我用Eclipse蛋疼……
Old_Rookie_Su 2015-05-28
  • 打赏
  • 举报
回复
问题搞定了,少包!!!!!
最蹩脚程序猿 2015-05-28
  • 打赏
  • 举报
回复
4.11 文档有点乱,包也很乱都不知道要哪些。
Old_Rookie_Su 2015-05-27
  • 打赏
  • 举报
回复
已解决,注册一个鉴权对象。
Old_Rookie_Su 2015-05-27
  • 打赏
  • 举报
回复
引用 4 楼 u010852914 的回复:
我发现是我 jar包没加全,我现在实现了 登录与消息的发送接收 你遇到什么问题了
我现在报这个错,搞了一天了,蛋疼……

org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout. Timeout was 5000ms (~5s). Used filter: No filter used or filter was 'null'.
    at org.jivesoftware.smack.SmackException$NoResponseException.newWith(SmackException.java:106)
    at org.jivesoftware.smack.SmackException$NoResponseException.newWith(SmackException.java:85)
    at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:250)
    at org.jivesoftware.smack.tcp.XMPPTCPConnection.loginNonAnonymously(XMPPTCPConnection.java:365)
    at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:452)
    at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:410)
我在这里又发了一帖 http://bbs.csdn.net/topics/391043545
pf281993959 2015-05-27
  • 打赏
  • 举报
回复
引用 4 楼 u010852914 的回复:
我发现是我 jar包没加全,我现在实现了 登录与消息的发送接收 你遇到什么问题了
连接服务器报 noClassDefFound XMPPTCPConfiguation
最蹩脚程序猿 2015-05-27
  • 打赏
  • 举报
回复
我发现是我 jar包没加全,我现在实现了 登录与消息的发送接收 你遇到什么问题了
Old_Rookie_Su 2015-05-27
  • 打赏
  • 举报
回复
引用 2 楼 u010852914 的回复:
求代码。。。。。我也出现这个问题

SASLAuthentication.registerSASLMechanism(new SASLPlainMechanism());
			connection.login();
我加了这一句,但又有新的问题……
最蹩脚程序猿 2015-05-27
  • 打赏
  • 举报
回复
求代码。。。。。我也出现这个问题

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧