1<testcase>
2<info>
3<keywords>
4SMTP
5SASL
6SASL AUTH OAUTH2
7SASL-IR
8RFC4954
9RFC6749
10RFC7628
11</keywords>
12</info>
13
14#
15# Server-side
16<reply>
17<servercmd>
18AUTH OAUTHBEARER
19REPLY AUTH 334 eyJzdGF0dXMiOiJpbnZhbGlkX3Rva2VuIiwic2NvcGUiOiJleGFtcGxlX3Njb3BlIiwib3BlbmlkLWNvbmZpZ3VyYXRpb24iOiJodHRwczovL2V4YW1wbGUuY29tLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uIn0
20REPLY AQ== 535 Username and Password not accepted. Learn more at\r\n535 http://support.example.com/mail/oauth
21</servercmd>
22</reply>
23
24#
25# Client-side
26<client>
27<server>
28smtp
29</server>
30 <name>
31SMTP OAuth 2.0 (OAUTHBEARER) failure as continuation with initial response
32 </name>
33<stdin>
34mail body
35</stdin>
36 <command>
37smtp://%HOSTIP:%SMTPPORT/949 --mail-rcpt recipient@example.com --mail-from sender@example.com -u user --oauth2-bearer mF_9.B5f-4.1JqM --sasl-ir -T -
38</command>
39# The protocol section doesn't support ways of specifying the raw data in the
40# base64 encoded message so we must assert this
41<precheck>
42perl -e "print 'Test requires default test server host and port' if ( '%HOSTIP' ne '127.0.0.1' || '%SMTPPORT' ne '9005' );"
43</precheck>
44</client>
45
46#
47# Verify data after the test has been "shot"
48<verify>
49# 67 - CURLE_LOGIN_DENIED
50<errorcode>
5167
52</errorcode>
53#
54# The multi interface considers a broken "CONNECT" as a prematurely broken
55# transfer and such a connection will not get a "QUIT"
56<protocol>
57EHLO 949
58AUTH OAUTHBEARER dXNlcj11c2VyAWhvc3Q9MTI3LjAuMC4xAXBvcnQ9OTAwNQFhdXRoPUJlYXJlciBtRl85LkI1Zi00LjFKcU0BAQ==
59AQ==
60</protocol>
61</verify>
62</testcase>
63