in CredentialProvider.Microsoft/CredentialProviders/VstsBuildTask/VstsBuildTaskCredentialProvider.cs [45:81]
public override Task<GetAuthenticationCredentialsResponse> HandleRequestAsync(GetAuthenticationCredentialsRequest request, CancellationToken cancellationToken)
{
cancellationToken.ThrowIfCancellationRequested();
string uriPrefixesString = Environment.GetEnvironmentVariable(EnvUtil.BuildTaskUriPrefixes);
string accessToken = Environment.GetEnvironmentVariable(EnvUtil.BuildTaskAccessToken);
Verbose(string.Format(Resources.IsRetry, request.IsRetry));
string[] uriPrefixes = uriPrefixesString.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
Verbose(Resources.BuildTaskUriPrefixes);
foreach (var uriPrefix in uriPrefixes)
{
Verbose($"{uriPrefix}");
}
string uriString = request.Uri.AbsoluteUri;
string matchedPrefix = uriPrefixes.FirstOrDefault(prefix => uriString.StartsWith(prefix, StringComparison.OrdinalIgnoreCase));
Verbose(string.Format(Resources.BuildTaskMatchedPrefix, matchedPrefix != null ? matchedPrefix : Resources.BuildTaskNoMatchingPrefixes));
if (matchedPrefix == null)
{
Verbose(Resources.BuildTaskNoPrefixMatch);
return this.GetResponse(
null,
null,
Resources.BuildTaskNoPrefixMatch,
MessageResponseCode.Error);
}
Verbose(string.Format(Resources.BuildTaskEndpointMatchingUrlFound, uriString));
return this.GetResponse(
Username,
accessToken,
null,
MessageResponseCode.Success);
}