Example #1
0
        public void TestExportChannels()
        {           
            string policyCatalogueFilename = m_testPath + "SamplePolicyCatalogue.xml";
            string policyLanguageFilename = m_testPath + "SampleLanguageBase.xml";
            string policyFilename = m_testPath + "SamplePolicy.xml";

            XmlPolicyLanguageStore languageStore = XmlPolicyLanguageStore.Instance;
            languageStore.AddLanguage(System.IO.File.ReadAllText(policyLanguageFilename));
            XMLPolicyCatalogueStore catalogueStore = XMLPolicyCatalogueStore.Instance;
            catalogueStore.Reset();
            catalogueStore.AddPolicyCatalogue(System.IO.File.ReadAllText(policyCatalogueFilename));

            XmlStore store = new XmlStore(System.IO.File.ReadAllText(policyFilename));
            IPolicyObjectCollection<IPolicySet> policySet = store.Reader.PolicySets;
            IPolicyObjectCollection<IPolicy> policies = store.Reader.Policies(policySet[0]);
            IPolicy policy = policies[0];
            IPolicySet ps = policySet[0];

            NxPolicyStore policyStore = new NxPolicyStore();
            policyStore.ResourceManager = ResourcesCache.GetResources();
            ps.Export(policyStore);

            string nxstore = policyStore.XMLRepresentation;
            CompiledPolicySetExtractor pse = new CompiledPolicySetExtractor(nxstore);
            List<string> channelNames = pse.GetChannelNames();
            foreach (string channel in channelNames)
            {
                Assert.AreNotEqual("", pse.GetRules(channel));
                Assert.AreNotEqual("", pse.GetObjects(channel));
            }
        }
Example #2
0
        private void CompileNxBrePolicySet(IPolicySetVersionCache version, IPolicySet policySet, string target)
        {
            if ((null == version) || (null == policySet) || (string.IsNullOrEmpty(target)))
                return;

            NxPolicyStore nxBreStore = new NxPolicyStore();
            nxBreStore.ResourceManager = ResourcesCache.GetResources();
            policySet.Export(nxBreStore);

            CompiledPolicySetExtractor cpse = new CompiledPolicySetExtractor(nxBreStore.XMLRepresentation);
            List<string> channels = cpse.GetChannelNames();

            foreach (string channel in channels)
            {
                string objects = cpse.GetObjects(channel);
                string rules = cpse.GetRules(channel);

                ICompiledPolicySetCache cps = version.GetCompiledPolicySet(channel, target);
                if (cps == null)
                {
                    cps = version.NewCompiledPolicySet(channel, target, rules, objects);
                }
                else
                {
                    cps.Content = rules;
                    cps.ObjectReferences = objects;
                }
                    
                SaveLanguages(cpse.GetLanguages(), cps);
            }
        }