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