コード例 #1
0
        public void TestBadCredentialHelperPath(bool emptyPath)
        {
            var outStream  = new StringBuilder();
            var credHelper = AzureArtifactsCredentialHelper.CreateInstanceForTesting(m => outStream.AppendLine(m), emptyPath ? "" : "badPath", "");

            var result = credHelper.AcquirePat(new Uri("https://foo"), PatType.CacheReadWrite).Result;

            XAssert.IsTrue(result.Result == AzureArtifactsCredentialHelperResultType.NoCredentialProviderSpecified);
            XAssert.IsNull(result.Pat);
        }
コード例 #2
0
        public void TestBadExitCode()
        {
            var outStream  = new StringBuilder();
            var credHelper = AzureArtifactsCredentialHelper.CreateInstanceForTesting(m => outStream.AppendLine(m), CmdHelper.OsShellExe, "/d /c exit 1");

            var result = credHelper.AcquirePat(new Uri("https://foo"), PatType.CacheReadWrite).Result;

            XAssert.IsTrue(result.Result == AzureArtifactsCredentialHelperResultType.BadStatusCodeReturned);
            XAssert.IsTrue(outStream.ToString().Contains("Credential provider execution failed with exit code 1"));
            XAssert.IsNull(result.Pat);
        }
コード例 #3
0
ファイル: VsoClient.cs プロジェクト: dfederm/BuildXL
        /// <summary>
        /// Try to acquire credentials using the Azure Artifacts Helper first, if that fails then fallback to VsoCredentialHelper
        /// </summary>
        /// <returns>Credentials for PAT that was acquired.</returns>
        private VssCredentials GetCredentials()
        {
            Action <string> loggerAction           = m => m_logger.Verbose(m);
            var             adoCredentialHelper    = new AzureArtifactsCredentialHelper(loggerAction);
            var             credentialHelperResult = adoCredentialHelper.AcquirePat(m_config.Service, PatType.VstsDropReadWrite).Result;

            if (credentialHelperResult.Result == AzureArtifactsCredentialHelperResultType.Success)
            {
                return(new VsoCredentialHelper(loggerAction).GetPATCredentials(credentialHelperResult.Pat));
            }

            return(new VsoCredentialHelper(loggerAction).GetCredentials(serviceUri: m_config.Service, useAad: true, existingAadTokenCacheBytes: null, pat: null, promptBehavior: PromptBehavior.Never));
        }
コード例 #4
0
        public void TestSuccessfulPatAcquisition()
        {
            var outStream      = new StringBuilder();
            var testAuthOutput = new AzureArtifactsAuthOutput()
            {
                Username = "",
                Password = "******",
                Message  = ""
            };
            var serialized = JsonConvert.SerializeObject(testAuthOutput);
            var credHelper = AzureArtifactsCredentialHelper.CreateInstanceForTesting(m => outStream.AppendLine(m), CmdHelper.OsShellExe, $"/d /c echo {serialized}");

            var result = credHelper.AcquirePat(new Uri("https://foo"), PatType.CacheReadWrite).Result;

            XAssert.IsTrue(result.Result == AzureArtifactsCredentialHelperResultType.Success);
            XAssert.IsTrue(outStream.ToString().Contains("Credentials were successfully retrieved from provider"));
            XAssert.IsTrue(outStream.ToString().Contains("testPassword"));
            XAssert.IsNotNull(result.Pat);
        }