Lesen Sie den Gerätecode mithilfe von Java aus dem Gerätecodefluss. MSAL; Microsoft Graph-APIJava

Java-Forum
Anonymous
 Lesen Sie den Gerätecode mithilfe von Java aus dem Gerätecodefluss. MSAL; Microsoft Graph-API

Post by Anonymous »

Unten ist mein Code und ich möchte eine Möglichkeit finden, URL und Gerätecode in eine Variable zu kopieren, damit ich mich mit Selenium beim Browser anmelden und den Code zur Authentifizierung verwenden kann. Die einzige Herausforderung besteht darin, dass ich keine Möglichkeit finde, den Gerätecodefluss zu kopieren.

Code: Select all

package com.eclerx.email;

import java.util.Arrays;
import java.util.List;

import com.azure.identity.DeviceCodeCredential;
import com.azure.identity.DeviceCodeCredentialBuilder;
import com.microsoft.graph.authentication.TokenCredentialAuthProvider;
import com.microsoft.graph.models.Message;
import com.microsoft.graph.models.User;
import com.microsoft.graph.requests.GraphServiceClient;
import com.microsoft.graph.requests.MessageCollectionPage;

import okhttp3.Request;

public class DeviceCodeCredentialsTest {

private String deviceCode;
private static final List graphApiScopes =
Arrays.asList("https://graph.microsoft.com/.default");

public DeviceCodeCredentialsTest() {
}

public static AccessProvider initializeGraphForUserAuth() {

final DeviceCodeCredential deviceCodeCred = new
DeviceCodeCredentialBuilder().clientId(Constants.CLIENT_ID)
.tenantId(Constants.AUTH_TENANT)
.challengeConsumer(challange -> System.out.println("**" +
challange.getMessage())).build();

System.out.println(deviceCodeCred.toString());

TokenCredentialAuthProvider tokenCredentialAuthProvider = new
TokenCredentialAuthProvider(graphApiScopes,
deviceCodeCred);

System.out.println("Token " + tokenCredentialAuthProvider.toString());

GraphServiceClient graphServiceClient = GraphServiceClient.builder()
.authenticationProvider(tokenCredentialAuthProvider).buildClient();

System.out.println(graphServiceClient.toString());

return new AccessProvider(graphServiceClient, tokenCredentialAuthProvider);
}

public static void main(String[] args) {
AccessProvider accessProvider = initializeGraphForUserAuth();
System.out.println("token : " + accessProvider.accessToken());

System.out.println("User name : " + accessProvider.getServiceClient().users());
User user = accessProvider.getServiceClient().me().buildRequest().get();

final MessageCollectionPage messagePage = accessProvider.getServiceClient().me().messages().buildRequest()
.top(3).select("subject").get();

List messageList = messagePage.getCurrentPage();

for (Message msg : messageList) {
System.out.println("Subject -> " + msg.subject);
}
}
}
Die Ausgabe des obigen Codes ist wie folgt

Code: Select all

To sign in, use a web browser to open the page
https://microsoft.com/devicelogin and enter
the code ABCDEFGHI to authenticate.
Ich möchte eine Möglichkeit haben, den obigen Gerätecode zu kopieren

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post