vukoye / xmpp_dart

Lightweight XMPP client library written in Dart
Apache License 2.0
83 stars 64 forks source link

Support Anonymous Auth #69

Closed eye-dee closed 2 years ago

eye-dee commented 2 years ago
  1. Add ANONYMOUS as supported mechanism
  2. Add AnonymousHandler that requests SASL ANONYMOUS:
    <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='ANONYMOUS'/>

Completes auth if success:

<success xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/>

Source: https://xmpp.org/extensions/xep-0175.html

eye-dee commented 2 years ago
[log] D/[Connection]: State: XmppConnectionState.SocketOpened
[log] ---Xmpp Sending:---
[log] <?xml version='1.0'?>
<stream:stream xmlns='jabber:client' version='1.0' xmlns:stream='http://etherx.jabber.org/streams'
to='<to>'
xml:lang='en'
>

[log] ---Xmpp Receiving:---
[log] <open xml:lang='en' xmlns='urn:ietf:params:xml:ns:xmpp-framing' id='141db49e-176a-44a7-afc0-f06ac2d15d56' version='1.0' from='<from>'/>
[log] ---Xmpp Receiving:---
[log] <stream:features xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client'><register xmlns='http://jabber.org/features/iq-register'/><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>ANONYMOUS</mechanism></mechanisms></stream:features>
[log] D/[ConnectionNegotiatorManager]: Negotiating features
[log] D/[ConnectionNegotiatorManager]: Found matching negotiator true
[log] ---Xmpp Sending:---
[log] <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="ANONYMOUS"/>
[log] D/[ConnectionNegotiatorManager]: ACTIVE FEATURE: {name: SaslAuthenticationFeature, name_space: null, priority: 1000, state: NegotiatorState.NEGOTIATING}, isReady: true
[log] ---Xmpp Receiving:---
[log] <success xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/>
[log] ---Xmpp Sending:---
[log] <?xml version='1.0'?>
<stream:stream xmlns='jabber:client' version='1.0' xmlns:stream='http://etherx.jabber.org/streams'
to='<to>'
xml:lang='en'
>

[log] D/[Connection]: State: XmppConnectionState.Authenticated