Чтение Gmail с помощью Oauth 2.0 в Spring Boot (Java 17)JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Чтение Gmail с помощью Oauth 2.0 в Spring Boot (Java 17)

Сообщение Anonymous »

Я хочу внедрить Google auth2.0 для обеспечения безопасности чтения моей почты Gmail. Пока что он хорошо работает с обычным паролем электронной почты и приложения. Но я получаю сообщение об ошибке неверных учетных данных при вводе токена доступа auth2.0. Что я делаю не так?
Credential credential = gmailOAuth2Config.authorize();
String oauthToken = credential.getAccessToken();

String oauth2Token = "user=" + gmailEmail + "\u0001auth=Bearer " + oauthToken + "\u0001\u0001";
String base64AuthString = Base64.getEncoder().encodeToString(oauth2Token.getBytes(StandardCharsets.UTF_8));
System.out.println("Encoded SASL XOAUTH2 Token: " + base64AuthString);

Properties props = new Properties();
props.put("mail.imap.ssl.enable", "true");
props.put("mail.imap.sasl.enable", "true");
props.put("mail.imap.auth.mechanisms", "XOAUTH2");
props.put("mail.imap.auth.login.disable", "true");
props.put("mail.imap.auth.plain.disable", "true");

Session emailSession = Session.getInstance(props);
Store store = emailSession.getStore("imap");
//Store store = emailSession.getStore("imaps"); works!

try {
store.connect("imap.gmail.com", gmailEmail, base64AuthString );
store.connect("imap.gmail.com", gmailEmail, gmailPassword);//works
System.out.println("Connected successfully to Gmail IMAP.");
} catch (jakarta.mail.AuthenticationFailedException e) {
System.err.println("Authentication failed: " + e.getMessage());
}

2024-11-14T10:12:19.207+05:30 ERROR 11772 --- [emailservice] [ scheduling-1] c.d.emailservice.service.EmailService : An error occurred while reading email inbox: Not connected

java.lang.IllegalStateException: Not connected
at com.sun.mail.imap.IMAPStore.checkConnected(IMAPStore.java:1960) ~[jakarta.mail-2.0.1.jar:2.0.1]
at com.sun.mail.imap.IMAPStore.getFolder(IMAPStore.java:1737) ~[jakarta.mail-2.0.1.jar:2.0.1]
at com.doxmate.emailservice.service.EmailService.readEmail(EmailService.java:97) ~[classes/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.scheduling.support.ScheduledMethodRunnable.runInternal(ScheduledMethodRunnable.java:130) ~[spring-context-6.1.14.jar:6.1.14]
at


Подробнее здесь: https://stackoverflow.com/questions/791 ... ot-java-17
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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