public static EvaluationEngine Create(XDocument policyDoc, IXacmlPolicyRepository ch) {
            Contract.Requires<ArgumentNullException>(policyDoc != null);

            using (XmlReader reader = policyDoc.CreateReader()) {
                return EvaluationEngineFactory.Create(reader, ch);
            }
        }
Exemplo n.º 2
0
        public static EvaluationEngine Create(XDocument policyDoc, IXacmlPolicyRepository ch)
        {
            if (policyDoc == null)
            {
                throw new ArgumentNullException(nameof(policyDoc));
            }

            using (XmlReader reader = policyDoc.CreateReader()) {
                return(EvaluationEngineFactory.Create(reader, ch));
            }
        }
Exemplo n.º 3
0
        public static EvaluationEngine Create(XmlDocument policyDoc, IXacmlPolicyRepository ch)
        {
            if (policyDoc == null)
            {
                throw new ArgumentNullException(nameof(policyDoc));
            }

#if NETSTANDARD1_6
            var stringReader = new System.IO.StringReader(policyDoc.DocumentElement.OuterXml);
            using (XmlReader reader = XmlReader.Create(stringReader)) {
#else
            using (XmlReader reader = new XmlNodeReader(policyDoc.DocumentElement)) {
#endif
                return(EvaluationEngineFactory.Create(reader, ch));
            }
        }
Exemplo n.º 4
0
        public static EvaluationEngine Create(XmlReader reader, IXacmlPolicyRepository ch)
        {
            if (reader == null)
            {
                throw new ArgumentNullException(nameof(reader));
            }

            EvaluationEngine engine;

            if (reader.IsStartElement(XacmlConstants.ElementNames.Policy, Xacml10Constants.Namespaces.Policy))
            {
                Xacml10ProtocolSerializer serializer = new Xacml10ProtocolSerializer();
                engine = new EvaluationEngine(serializer.ReadPolicy(reader));
            }
            else if (reader.IsStartElement(XacmlConstants.ElementNames.PolicySet, Xacml10Constants.Namespaces.Policy))
            {
                Xacml10ProtocolSerializer serializer = new Xacml10ProtocolSerializer();
                engine = new EvaluationEngine(serializer.ReadPolicySet(reader));
            }
            else if (reader.IsStartElement(XacmlConstants.ElementNames.Policy, Xacml20Constants.Namespaces.Policy))
            {
                Xacml20ProtocolSerializer serializer = new Xacml20ProtocolSerializer();
                engine = new EvaluationEngine(serializer.ReadPolicy(reader));
            }
            else if (reader.IsStartElement(XacmlConstants.ElementNames.PolicySet, Xacml20Constants.Namespaces.Policy))
            {
                Xacml20ProtocolSerializer serializer = new Xacml20ProtocolSerializer();
                engine = new EvaluationEngine(serializer.ReadPolicySet(reader));
            }
            else if (reader.IsStartElement(XacmlConstants.ElementNames.Policy, Xacml30Constants.Namespaces.Policy))
            {
                Xacml30ProtocolSerializer serializer = new Xacml30ProtocolSerializer();
                engine = new EvaluationEngine30(serializer.ReadPolicy(reader));
            }
            else if (reader.IsStartElement(XacmlConstants.ElementNames.PolicySet, Xacml30Constants.Namespaces.Policy))
            {
                Xacml30ProtocolSerializer serializer = new Xacml30ProtocolSerializer();
                engine = new EvaluationEngine30(serializer.ReadPolicySet(reader));
            }
            else
            {
                throw new XmlException("Unknown XML");
            }

            engine.ch = ch;
            return(engine);
        }
        public static EvaluationEngine Create(XmlReader reader, IXacmlPolicyRepository ch) {
            Contract.Requires<ArgumentNullException>(reader != null);

            EvaluationEngine engine;

            if (reader.IsStartElement(XacmlConstants.ElementNames.Policy, Xacml10Constants.Namespaces.Policy)) {
                Xacml10ProtocolSerializer serializer = new Xacml10ProtocolSerializer();
                engine = new EvaluationEngine(serializer.ReadPolicy(reader));
            }
            else if (reader.IsStartElement(XacmlConstants.ElementNames.PolicySet, Xacml10Constants.Namespaces.Policy)) {
                Xacml10ProtocolSerializer serializer = new Xacml10ProtocolSerializer();
                engine = new EvaluationEngine(serializer.ReadPolicySet(reader));
            }
            else if (reader.IsStartElement(XacmlConstants.ElementNames.Policy, Xacml20Constants.Namespaces.Policy)) {
                Xacml20ProtocolSerializer serializer = new Xacml20ProtocolSerializer();
                engine = new EvaluationEngine(serializer.ReadPolicy(reader));
            }
            else if (reader.IsStartElement(XacmlConstants.ElementNames.PolicySet, Xacml20Constants.Namespaces.Policy)) {
                Xacml20ProtocolSerializer serializer = new Xacml20ProtocolSerializer();
                engine = new EvaluationEngine(serializer.ReadPolicySet(reader));
            }
            else if (reader.IsStartElement(XacmlConstants.ElementNames.Policy, Xacml30Constants.Namespaces.Policy)) {
                Xacml30ProtocolSerializer serializer = new Xacml30ProtocolSerializer();
                engine = new EvaluationEngine30(serializer.ReadPolicy(reader));
            }
            else if (reader.IsStartElement(XacmlConstants.ElementNames.PolicySet, Xacml30Constants.Namespaces.Policy)) {
                Xacml30ProtocolSerializer serializer = new Xacml30ProtocolSerializer();
                engine = new EvaluationEngine30(serializer.ReadPolicySet(reader));
            }
            else {
                throw Diagnostic.DiagnosticTools.ExceptionUtil.ThrowHelperError(new XmlException("Unknown XML"));
            }

            engine.ch = ch;
            return engine;
        }