无法使用 adal4j Api 获取 Azure 令牌
Not able to get Azure token using adal4j Api
我正在尝试从 Microsoft 图形中读取用户 profile/image 并使用 adal4j-1.5。0.jar 生成天蓝色令牌,以便基于令牌我可以调用图形 API/Microsoft钻研
我在下面的代码中遇到问题。在不生成令牌或任何异常的情况下,在下面的行之后移动到最终阻塞很简单。
"Future future = context.acquireToken(resourceUri, credential, null);"
String clientId = "clientid";
String clientSecret = "cleintsecret";
String resourceUri = "https://graph.microsoft.com/v1.0/me";
String redirectUri = "http://localhost:9082/contextroot";
String authorityUri ="https://login.microsoftonline.com/{tenent id}/oauth2/authorize";
AuthenticationContext context = null;
AuthenticationResult result = null;
ExecutorService service = null;
try {
service = Executors.newFixedThreadPool(1);
context = new AuthenticationContext(authorityUri, false, service);
ClientCredential credential = new ClientCredential(clientId,clientSecret);
Future<AuthenticationResult> future = context.acquireToken(resourceUri, credential, null);
result = future.get();
}
finally {
service.shutdown();
}
好像adal4j-1.5.0的一些依赖也没有下载,请检查你项目中的jar包文件。根据我的测试,如果我使用 adal4j 1.5.0。
我发现项目中缺少 adal4j-1.5.0 的一些依赖项。然后我无法获得访问令牌。
但是如果我使用 adal4j 1.0.0,它对我来说工作正常。如果版本 1.0.0 是可接受的,您可以使用它作为解决方法或手动添加依赖项。
测试演示代码:
private static final String APP_ID = "clientId";
private static final String APP_SECRET = "secret key";
private static final String TENATID = "xxxxx";
public static void main(String[] args) throws Exception {
String authority = "https://login.microsoftonline.com/"+TENATID;
String resourceUrl = "https://graph.microsoft.com"; //Microsoft graph. AD graph: https://graph.windows.net
ExecutorService service = Executors.newFixedThreadPool(1);
AuthenticationContext context = new AuthenticationContext(authority, true, service);
// Acquire Token
Future<AuthenticationResult> result = context.acquireToken(
resourceUrl,
new ClientCredential(APP_ID, APP_SECRET),
null
);
String token = result.get().getAccessToken();
System.out.println(token);
}
我正在尝试从 Microsoft 图形中读取用户 profile/image 并使用 adal4j-1.5。0.jar 生成天蓝色令牌,以便基于令牌我可以调用图形 API/Microsoft钻研
我在下面的代码中遇到问题。在不生成令牌或任何异常的情况下,在下面的行之后移动到最终阻塞很简单。 "Future future = context.acquireToken(resourceUri, credential, null);"
String clientId = "clientid";
String clientSecret = "cleintsecret";
String resourceUri = "https://graph.microsoft.com/v1.0/me";
String redirectUri = "http://localhost:9082/contextroot";
String authorityUri ="https://login.microsoftonline.com/{tenent id}/oauth2/authorize";
AuthenticationContext context = null;
AuthenticationResult result = null;
ExecutorService service = null;
try {
service = Executors.newFixedThreadPool(1);
context = new AuthenticationContext(authorityUri, false, service);
ClientCredential credential = new ClientCredential(clientId,clientSecret);
Future<AuthenticationResult> future = context.acquireToken(resourceUri, credential, null);
result = future.get();
}
finally {
service.shutdown();
}
好像adal4j-1.5.0的一些依赖也没有下载,请检查你项目中的jar包文件。根据我的测试,如果我使用 adal4j 1.5.0。 我发现项目中缺少 adal4j-1.5.0 的一些依赖项。然后我无法获得访问令牌。
但是如果我使用 adal4j 1.0.0,它对我来说工作正常。如果版本 1.0.0 是可接受的,您可以使用它作为解决方法或手动添加依赖项。
测试演示代码:
private static final String APP_ID = "clientId";
private static final String APP_SECRET = "secret key";
private static final String TENATID = "xxxxx";
public static void main(String[] args) throws Exception {
String authority = "https://login.microsoftonline.com/"+TENATID;
String resourceUrl = "https://graph.microsoft.com"; //Microsoft graph. AD graph: https://graph.windows.net
ExecutorService service = Executors.newFixedThreadPool(1);
AuthenticationContext context = new AuthenticationContext(authority, true, service);
// Acquire Token
Future<AuthenticationResult> result = context.acquireToken(
resourceUrl,
new ClientCredential(APP_ID, APP_SECRET),
null
);
String token = result.get().getAccessToken();
System.out.println(token);
}