0
我正在使用java后端服务器连接到启用Azure AD的API。我可以通过以下java代码获得访问令牌。ADAL4j java - 使用带有用户名和密码的刷新令牌获取访问令牌
String tenantId = "************";
String username = "***************";
String password = "*************";
String clientId = "**********";
String resource = "***********";
String userEmail = "**********";
AuthenticationContext authContext = null;
AuthenticationResult authResult = null;
ExecutorService service = null;
try
{
service = Executors.newFixedThreadPool(1);
String url = "https://login.microsoftonline.com/" + tenantId + "/oauth2/authorize";
authContext = new AuthenticationContext(url, false, service);
Future<AuthenticationResult> future = authContext.acquireToken(
resource,
clientId,
userEmail,
password,
null);
authResult = future.get();
}
catch(Exception ex)
{
ex.printStackTrace();
}
请注意API提供者目前不支持客户端凭证。
问题是,使用上面代码中接收到的刷新令牌来获取新的访问令牌。
ADAL4j java库似乎没有任何支持此方法的方法。 A Documentation for java library
但在.NET库也有类似的方法,
public AuthenticationResult AcquireTokenByRefreshToken(
string refreshToken,
string clientId,
string resource
)
对于刷新访问令牌不提供任何凭证。
为什么这些方法没有在Java库中提供?有任何限制吗? 什么是可能的解决方法?
在此先感谢。
谢谢。我发现你提供的选择非常有用。 – Tanimak
但是你有什么想法为什么java库不支持这个功能。背后应该有一个原因。 – Tanimak