Преобразование настольного приложения Java Gmail Access из пароля в OAuth2: AuthenticationFailedJAVA

Программисты JAVA общаются здесь
Anonymous
Преобразование настольного приложения Java Gmail Access из пароля в OAuth2: AuthenticationFailed

Сообщение Anonymous »

Я использовал настольное приложение Java (DigitGrabber), чтобы заглянуть на мой почтовый сервер (который размещается Google), чтобы быстро вывести коды второго фактора шестизначных цифр, которые используют так много сайтов. Я настроил своего обычного почтового клиента (Thunderbird) для Oauth Fine, но у меня возникли проблемы с работой Digitgrabber. Я получаю: < /p>
jakarta.mail.AuthenticationFailedException [AUTHENTICATIONFAILED] Invalid credentials (Failure)
< /code>
Я прошел и зарегистрировал свое приложение с помощью Google, загрузил секрет клиента в файл JSON, получил код, который получил токен доступа: < /p>
String accessToken = Main.authorize(userId).getAccessToken();
< /code>
Main.authorize().getAccessToken(), кажется, работает. По крайней мере, я получаю обратный токен доступа, но , когда я пытаюсь добраться до моего почтового ящика, он терпит неудачу с проблемой аутентификации . Есть ли какая -то «проблема выравнивания» приложения, которое мне нужно решить? Все, что я сделал, это заходил на https://console.cloud.google.com и зарегистрироваться, и это дало мне имя приложения, секрет клиента и т. Д., Который я использовал со всеми своими тестовыми программами. И я только что возился, захватывая код отсюда и там, чтобы добраться до того, что я сейчас нахожусь, не очень знаком с облачным ландшафтом Google. Есть ли где -то в моем коде, где я могу зарегистрировать некоторые детали некоторых объектов, которые могут пролить свет на то, почему я не получаю аутентификацию?Apr 23, 2025 11:51:27 AM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly
WARNING: unable to change permissions for everybody: C:\Users\Owner\.credentials\google-oauth
< /code>
Below is the code I'm running:
private String runImap(String userId) {
Session session = null;
Store store = null;
Folder folder = null;
try {
boolean useOauth = true;
//https://kgiann78.github.io/java/gmail/2 ... h-XOAUTH2/
//https://learn.microsoft.com/en-us/answe ... -authentic
if (useOauth) {
Properties props = System.getProperties();
props.put("mail.store.protocol", "imap");
props.put("mail.imap.ssl.enable", "true"); // required for Gmail
props.put("mail.imap.starttls.enable", "true");
props.put("mail.debug", "true");
props.put("mail.debug.auth", "true");
props.put("mail.imap.auth.mechanisms", "XOAUTH2");
props.put("mail.imap.sasl.enable", "true");
props.put("mail.imap.sasl.mechanisms", "XOAUTH2");
props.put("mail.imap.auth.login.disable", "true");
props.put("mail.imap.auth.plain.disable", "true");
props.put("mail.imap.user", userId);
session = Session.getInstance(props);
session.setDebug(true);
store = session.getStore("imap");
String accessToken = Main.authorize(userId).getAccessToken();
System.out.println("access token [" + accessToken + "]"); // I DO get an access token here!!
store.connect("imap.gmail.com", userId, accessToken); //

Подробнее здесь: https://stackoverflow.com/questions/795 ... entication

Вернуться в «JAVA»