private void refresh()

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();
    }