Esempio n. 1
0
        public void TestProviderInfo()
        {
            var prov = ChallengeHandlerExtManager.GetProviders().First();

            Assert.AreEqual("manual", prov.Name);
            Assert.AreEqual(prov.Info.SupportedTypes,
                            ChallengeTypeKind.DNS | ChallengeTypeKind.HTTP);
        }
Esempio n. 2
0
        public void TestBuiltInProvidersExist()
        {
            var provsEnum = ChallengeHandlerExtManager.GetProviders();

            Assert.IsNotNull(provsEnum);

            var provsArr = provsEnum.ToArray();

            Assert.IsTrue(provsArr.Length > 0);
        }
Esempio n. 3
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);
                            }
                        }
                    }
                }
            }
        }