如何解决CertPathValidatorException:未找到证书路径的信任锚在 Smack 项目中
我正在使用 Smack 库:
def smack_version = "4.3.3"
implementation "org.igniterealtime.smack:smack-android:$smack_version"
// Optional for XMPPTCPConnection
implementation "org.igniterealtime.smack:smack-tcp:$smack_version"
// Optional for XMPP-IM (RFC 6121) support (Roster,Threaded Chats,…)
implementation "org.igniterealtime.smack:smack-im:$smack_version"
// Optional for XMPP extensions support
implementation "org.igniterealtime.smack:smack-extensions:$smack_version"
private fun callMam() {
/*val manager = MamManager.getInstanceFor(connection)
val numberOfMessages = 500
val userBareJID = 5415845
val r = (manager.mostRecentPage(userBareJID,numberOfMessages)) as MamManager.MamQueryResult
if (r.forwardedMessages.size() >= 1) {
val message: Message = r.forwardedMessages.get(0).getForwardedStanza() as Message
Log.i("MAM_TAG","message received" + message.getBody())
}*/
Coroutinescope(Main).launch {
val xmppConnection = getXmppConnection()
if (xmppConnection == null) {
Log.w("Xmpp_TAG","xmppConnection is null")
return@launch
}
val chatManager: ChatManager = ChatManager.getInstanceFor(xmppConnection).apply {
addIncomingListener { from,message,chat ->
{
Log.w("Xmpp_TAG","from: $from,message: $message,chat: $chat")
}
}
addOutgoingListener { to,"to: $to,chat: $chat")
}
}
}
val newChat: Chat =
chatManager.chatWith(xmppConnection.user.asEntityBareJid()) // "harsh@192.168.0.200"
try {
newChat.send("Howdy!")
} catch (e: NotConnectedException) {
Log.e("Xmpp_TAG","NotConnectedException: ${e.message}",e)
}
}
}
private fun getXmppConfiguration(): XMPPTCPConnectionConfiguration {
val defaultReplyTimeout = 10000
SmackConfiguration.setDefaultReplyTimeout(defaultReplyTimeout)
return XMPPTCPConnectionConfiguration.builder()
.setUsernameAndPassword(usernameTest,passwordTest)
.setXmppDomain(serverNameTest)
.setHost(serverNameTest)
.setPort(portTest)
.setSecurityMode(ConnectionConfiguration.SecurityMode.ifpossible)
.build()
}
private fun getXmppConnection(): XMPPConnection? {
val xmppConnection: AbstractXMPPConnection = XMPPTCPConnection(getXmppConfiguration())
try {
xmppConnection.apply {
connect() // Error line,Throws CertPathValidatorException
login()
val presence = Presence(Presence.Type.unavailable).apply {
status = "Gone fishing"
}
// Send the packet (assume we have an XMPPConnection instance called "con").
sendStanza(presence)
}
return xmppConnection
} catch (e: SmackException) {
Log.e("Xmpp_TAG","SmackException: ${e.message}",e)
} catch (e: IOException) {
Log.e("Xmpp_TAG","IOException: ${e.message}",e)
} catch (e: XMPPException) {
Log.e("Xmpp_TAG","XMPPException: ${e.message}",e)
}
return null
}
CertPathValidatorException:未找到证书路径的信任锚。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。