in src/main/java/com/microsoft/store/partnercenter/extensions/UserPartnerCredentials.java [95:132]
private void refresh(IRequestContext context)
{
if (this.getAADToken().isExpired())
{
// we need to refresh the AAD before attempting to re-authenticate with the partner service
if (this.tokenRefresher != null)
{
// invoke the callback and let it provide us with the new aad token
AuthenticationToken newAadToken = tokenRefresher.authenticate();
if (newAadToken == null)
{
String errorMessage = "Token refresher returned null token.";
PartnerLog.getInstance().logError(errorMessage);
throw new PartnerException(errorMessage, context, PartnerErrorCategory.UNAUTHORIZED);
}
if (newAadToken.isExpired())
{
String errorMessage = "Token refresher returned an expired token.";
PartnerLog.getInstance().logError(errorMessage);
throw new PartnerException(errorMessage, context, PartnerErrorCategory.UNAUTHORIZED);
}
setAADToken(newAadToken);
}
else
{
String errorMessage = "AAD Token needs refreshing but no handler was registered.";
PartnerLog.getInstance().logWarning(errorMessage);
throw new PartnerException(errorMessage, context, PartnerErrorCategory.UNAUTHORIZED);
}
}
// get a new partner service token using the AAD token we have
this.authenticate();
}