public void TestProviderInfo() { var prov = ChallengeHandlerExtManager.GetProviders().First(); Assert.AreEqual("manual", prov.Name); Assert.AreEqual(prov.Info.SupportedTypes, ChallengeTypeKind.DNS | ChallengeTypeKind.HTTP); }
public void TestBuiltInProvidersExist() { var provsEnum = ChallengeHandlerExtManager.GetProviders(); Assert.IsNotNull(provsEnum); var provsArr = provsEnum.ToArray(); Assert.IsTrue(provsArr.Length > 0); }
protected override void ProcessRecord() { // We have to invoke this here because we *may not* invoke // any Vault access but we do rely on Ext mechanism access. Util.PoshHelper.BeforeExtAccess(); if (!string.IsNullOrEmpty(GetChallengeType)) { WriteVerbose("Getting details of Challenge Type Decoder"); var tInfo = ChallengeDecoderExtManager.GetProviders() .FirstOrDefault(_ => _.Name == GetChallengeType); var t = ChallengeDecoderExtManager.GetProvider(GetChallengeType); WriteObject(new { tInfo.Name, tInfo.Info.Label, tInfo.Info.SupportedType, ChallengeType = tInfo.Info.Type, tInfo.Info.Description, }); } else if (ListChallengeTypes) { WriteVerbose("Listing all Challenge Type Decoders"); WriteObject(ChallengeDecoderExtManager.GetProviders().Select(_ => _.Name), true); } else if (!string.IsNullOrEmpty(GetChallengeHandler)) { WriteVerbose("Getting details of Challenge Type Handler"); var pInfo = ChallengeHandlerExtManager.GetProviders() .FirstOrDefault(_ => _.Name == GetChallengeHandler); var p = ChallengeHandlerExtManager.GetProvider(GetChallengeHandler); if (ParametersOnly) { WriteVerbose("Showing parameter details only"); WriteObject(p.DescribeParameters().Select(_ => new { _.Name, _.Label, _.Type, _.IsRequired, _.IsMultiValued, _.Description, }), true); } else { WriteObject(new { pInfo.Name, pInfo.Info.Label, pInfo.Info.SupportedTypes, pInfo.Info.Description, Parameters = p.DescribeParameters().Select(_ => new { _.Name, _.Label, _.Type, _.IsRequired, _.IsMultiValued, _.Description, }), }); } } else if (ListChallengeHandlers) { WriteVerbose("Listing all Challenge Type Handlers"); WriteObject(ChallengeHandlerExtManager.GetProviders().Select(_ => _.Name), true); } else { WriteVerbose("Getting details of preconfigured Challenge Handler Profile"); using (var vlt = Util.VaultHelper.GetVault(VaultProfile)) { vlt.OpenStorage(); var v = vlt.LoadVault(); if (ListProfiles) { WriteObject(v.ProviderProfiles?.Values, true); } else { var ppi = v.ProviderProfiles?.GetByRef(ProfileRef, false); if (ppi == null) { WriteObject(ppi); } else { var asset = vlt.GetAsset(Vault.VaultAssetType.ProviderConfigInfo, ppi.Id.ToString()); using (var s = vlt.LoadAsset(asset)) { WriteObject(JsonHelper.Load <ProviderProfile>(s), false); } } } } } }