[ 
https://issues.apache.org/jira/browse/CAMEL-18623?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17622202#comment-17622202
 ] 

Jeff commented on CAMEL-18623:
------------------------------

Yes, as you see from the example posted in the issue description above I am 
using a custom authenticator bean named `exchangeAuthenticator`. I pass the 
OAuth access token as the password, as shown in the Groovy snippet below.

 
{code:java}
@Component
class ExchangeAuthenticator extends MailAuthenticator {

    @Autowired
    ExchangeTokeCache tokenCache

    @Autowired
    ExchangeConfigurationProperties configurationProperties

    @Override
    PasswordAuthentication getPasswordAuthentication() {
        def accessToken = tokenCache.getToken().accessToken
        def user = configurationProperties.username
        return new PasswordAuthentication(user, accessToken)

    }
} {code}
 

I have confirmed that I am getting a valid token from the authorization server, 
and that the user name is also valid according to the [exhange OAuth2 for IMAP 
docs|https://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth].
 I can also see from the debug logs (also above) that OAuth authentication is 
being attempted.

> Camel Mail Component does not work with OAuth2
> ----------------------------------------------
>
>                 Key: CAMEL-18623
>                 URL: https://issues.apache.org/jira/browse/CAMEL-18623
>             Project: Camel
>          Issue Type: New Feature
>          Components: camel-mail
>    Affects Versions: 3.18.2
>            Reporter: Jeff
>            Priority: Minor
>             Fix For: 3.x
>
>
> Camel mail component does not appear to work with OAuth2. This seems clear 
> from the lack of documentation or unit tests regarding OAuth2, but having 
> spent a few hours trying different approaches it seems like the reason it 
> doesn't work is that it isn't supported. So maybe this is a new feature 
> request if the mail component is indeed not intended to work with OAuth2. If 
> it is intended to work with OAuth2, and there is some evidence of this, 
> please be so kind as to direct me to it. I would be happy to update the docs 
> if this is the case.
> Here is the component for reference:
>  
> {code:java}
> from('imaps://{{app.email.exchange.host}}?' +
> 'mail.imap.auth.mechanisms=XOAUTH2&' +
> 'mail.imap.starttls.enable=true&' +
> 'mail.imap.auth.plain.disable=true&' +
> 'mail.imap.auth.ntlm.disable=true&' +
> 'mail.imap.auth.gssapi.disable=true&' +
> 'mail.imap.auth.xoauth2.disable=false&' +
> 'authenticator=#exchangeAuthenticator&' +
> 'debugMode=true&' +
> 'bridgeErrorHandler=true&' +
> 'delete=true'){code}
>  
>  
> And the debug output:
> DEBUG: setDebug: Jakarta Mail version 1.6.7
> DEBUG: getProvider() returning 
> javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle]
> DEBUG IMAPS: mail.imap.fetchsize: 16384
> DEBUG IMAPS: mail.imap.ignorebodystructuresize: false
> DEBUG IMAPS: mail.imap.statuscachetimeout: 1000
> DEBUG IMAPS: mail.imap.appendbuffersize: -1
> DEBUG IMAPS: mail.imap.minidletime: 10
> DEBUG IMAPS: closeFoldersOnStoreFailure
> DEBUG IMAPS: trying to connect to host "outlook.office365.com", port 993, 
> isSSL true
> OK The Microsoft Exchange IMAP4 service is ready. ...
> A0 CAPABILITY
> CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS MOVE ID 
> UNSELECT CHILDREN IDLE NAMESPACE LITERAL+
> A0 OK CAPABILITY completed.
> B0 OK CAPABILITY completed.
> DEBUG IMAPS: AUTH: PLAIN
> DEBUG IMAPS: AUTH: XOAUTH2
> DEBUG IMAPS: protocolConnect login, host=outlook.office365.com, 
> user=u...@email.com, password=<non-null>
> DEBUG IMAPS: AUTHENTICATE XOAUTH2 command trace suppressed
> DEBUG IMAPS: AUTHENTICATE XOAUTH2 command result: B1 NO AUTHENTICATE failed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to