[ 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)