mirror of
https://github.com/M66B/FairEmail.git
synced 2024-12-28 02:37:16 +00:00
OAuth: support for shared mailboxes Outlook
This commit is contained in:
parent
39c10fb83a
commit
7eba0d82c0
1 changed files with 14 additions and 2 deletions
|
@ -344,8 +344,14 @@ public class FragmentOAuth extends FragmentBase {
|
||||||
.setState(provider.id)
|
.setState(provider.id)
|
||||||
.setAdditionalParameters(params);
|
.setAdditionalParameters(params);
|
||||||
|
|
||||||
if (askAccount)
|
if (askAccount) {
|
||||||
authRequestBuilder.setLoginHint(etEmail.getText().toString().trim());
|
String address = etEmail.getText().toString().trim();
|
||||||
|
int backslash = address.indexOf('\\');
|
||||||
|
if (backslash > 0)
|
||||||
|
authRequestBuilder.setLoginHint(address.substring(0, backslash));
|
||||||
|
else
|
||||||
|
authRequestBuilder.setLoginHint(address);
|
||||||
|
}
|
||||||
|
|
||||||
if (provider.oauth.pcke)
|
if (provider.oauth.pcke)
|
||||||
authRequestBuilder.setCodeVerifier(CodeVerifierUtil.generateRandomCodeVerifier());
|
authRequestBuilder.setCodeVerifier(CodeVerifierUtil.generateRandomCodeVerifier());
|
||||||
|
@ -484,6 +490,12 @@ public class FragmentOAuth extends FragmentBase {
|
||||||
List<String> usernames = new ArrayList<>();
|
List<String> usernames = new ArrayList<>();
|
||||||
usernames.add(address);
|
usernames.add(address);
|
||||||
|
|
||||||
|
// Outlook shared mailbox
|
||||||
|
// https://docs.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth#sasl-xoauth2-authentication-for-shared-mailboxes-in-office-365
|
||||||
|
int backslash = address.indexOf('\\');
|
||||||
|
if (backslash > 0)
|
||||||
|
usernames.add(address.substring(backslash + 1));
|
||||||
|
|
||||||
if (token != null) {
|
if (token != null) {
|
||||||
// https://docs.microsoft.com/en-us/azure/active-directory/develop/access-tokens
|
// https://docs.microsoft.com/en-us/azure/active-directory/develop/access-tokens
|
||||||
String[] segments = token.split("\\.");
|
String[] segments = token.split("\\.");
|
||||||
|
|
Loading…
Reference in a new issue