public void WritePolicy_20() { var subject = new XacmlSubject( new XacmlSubjectMatch[] { new XacmlSubjectMatch( new Uri("http://www.MatchId.www"), new XacmlAttributeValue(new Uri("http://www.DataType.www")), new XacmlSubjectAttributeDesignator(new Uri("http://www.AttributeId.www"), new Uri("http://www.DataType.www")) { Issuer = "String", MustBePresent = false, Category = new Uri("http://www.subjectCategory.www")} ) }); var resource = new XacmlResource( new XacmlResourceMatch[] { new XacmlResourceMatch( new Uri("http://www.MatchId.www"), new XacmlAttributeValue(new Uri("http://www.DataType.www") /*, "xxxx" */), new XacmlResourceAttributeDesignator(new Uri("http://www.AttributeId.www"), new Uri("http://www.DataType.www")) { Issuer = "String", MustBePresent = false} ) }); var action = new XacmlAction( new XacmlActionMatch[] { new XacmlActionMatch( new Uri("http://www.MatchId.www"), new XacmlAttributeValue(new Uri("http://www.DataType.www")), new XacmlActionAttributeDesignator(new Uri("http://www.AttributeId.www"), new Uri("http://www.DataType.www")){ Issuer = "String", MustBePresent = false} ) }); var target = new XacmlTarget(subject, resource, action, null); // new Uri("http://www.PolicySetId.www") XacmlPolicySet xacmlPolicySet = new XacmlPolicySet(new Uri("http://www.PolicyCombiningAlgId.www"), target) { Description = "description string", XPathVersion = Xacml10Constants.XPathVersions.Xpath10, }; ////#region Policy XacmlEnvironment env = new XacmlEnvironment( new XacmlEnvironmentMatch[] { new XacmlEnvironmentMatch( new Uri("http://www.EnvironmentMatchIdId.www"), new XacmlAttributeValue(new Uri("http://www.AttributValue.www")), new XacmlEnvironmentAttributeDesignator(new Uri("http://www.AttributeId.www"), new Uri("http://www.DataType.www")){ Issuer = "String", MustBePresent = false} ) }); XacmlTarget targetWithEnvironment = new XacmlTarget(null, null, null, new XacmlEnvironment[] { env }); XacmlPolicy xacmlPolicy = new XacmlPolicy(new Uri("http://www.PolicyId.www"), new Uri("http://www.RuleCombiningAlgId.www"), targetWithEnvironment) { Description = "description string", XPathVersion = Xacml10Constants.XPathVersions.Xpath10, }; XacmlRule xacmlRule = new XacmlRule("http://www.RuleId.www", XacmlEffectType.Permit) { Description = "xacmlRule description" }; xacmlPolicy.Rules.Add(xacmlRule); XacmlAttributeAssignment xacmlAttributeAssignment = new XacmlAttributeAssignment(new Uri("http://www.AttributeId.www"), new Uri("http://www.DataType.www")); XacmlObligation xacmlObligation = new XacmlObligation(new Uri("http://www.ObligationId.www"), XacmlEffectType.Permit, new XacmlAttributeAssignment[] { xacmlAttributeAssignment }); xacmlPolicy.Obligations.Add(xacmlObligation); xacmlPolicySet.Policies.Add(xacmlPolicy); StringBuilder builder = new StringBuilder(); using (XmlWriter writer = XmlWriter.Create(builder)) { var serializer = new Xacml20ProtocolSerializer(); serializer.WritePolicySet(writer, xacmlPolicySet); } string xml = builder.ToString(); ValidateMessage(xml, @"..\..\_Data\access_control-xacml-2.0-policy-schema-os.xsd"); }
public void IID030_20() { XmlDocument request = new XmlDocument(); XmlDocument response = new XmlDocument(); XmlDocument policy1 = new XmlDocument(); XmlDocument policy2 = new XmlDocument(); request.Load(Path.Combine(Xacml20TestsCases.TestCasePath, "IID030Request.xml")); response.Load(Path.Combine(Xacml20TestsCases.TestCasePath, "IID030Response.xml")); policy1.Load(Path.Combine(Xacml20TestsCases.TestCasePath, "IID030Policy1.xml")); policy2.Load(Path.Combine(Xacml20TestsCases.TestCasePath, "IID030Policy2.xml")); var serialize = new Xacml20ProtocolSerializer(); XacmlContextRequest requestData; XacmlContextResponse responseData; XacmlPolicy policy1Data; XacmlPolicy policy2Data; using (XmlReader reader = XmlReader.Create(new StringReader(request.OuterXml))) { requestData = serialize.ReadContextRequest(reader); } using (XmlReader reader = XmlReader.Create(new StringReader(response.OuterXml))) { responseData = serialize.ReadContextResponse(reader); } using (XmlReader reader = XmlReader.Create(new StringReader(policy1.OuterXml))) { policy1Data = serialize.ReadPolicy(reader); } using (XmlReader reader = XmlReader.Create(new StringReader(policy2.OuterXml))) { policy2Data = serialize.ReadPolicy(reader); } var policySet = new XacmlPolicySet(Xacml10Constants.PolicyCombiningAlgorithms.OnlyOneApplicable, new XacmlTarget()); // TODO: PolicyCombiningAlgorithms policySet.Policies.Add(policy1Data); policySet.Policies.Add(policy2Data); EvaluationEngine engine = new EvaluationEngine(policySet); XacmlContextResponse evaluatedResponse = engine.Evaluate(requestData, request); XacmlResponseAssert(responseData, evaluatedResponse); }
public void IIE003_20() { XmlDocument policy = new XmlDocument(); XmlDocument request = new XmlDocument(); XmlDocument response = new XmlDocument(); XmlDocument policy1 = new XmlDocument(); XmlDocument policy2 = new XmlDocument(); policy.Load(Path.Combine(Xacml20TestsCases.TestCasePath, "IIE003Policy.xml")); request.Load(Path.Combine(Xacml20TestsCases.TestCasePath, "IIE003Request.xml")); response.Load(Path.Combine(Xacml20TestsCases.TestCasePath, "IIE003Response.xml")); policy1.Load(Path.Combine(Xacml20TestsCases.TestCasePath, "IIE003PolicyId1.xml")); policy2.Load(Path.Combine(Xacml20TestsCases.TestCasePath, "IIE003PolicyId2.xml")); var serialize = new Xacml20ProtocolSerializer(); XacmlContextRequest requestData; XacmlContextResponse responseData; XacmlPolicy policy1Data; XacmlPolicy policy2Data; using (XmlReader reader = XmlReader.Create(new StringReader(request.OuterXml))) { requestData = serialize.ReadContextRequest(reader); } using (XmlReader reader = XmlReader.Create(new StringReader(response.OuterXml))) { responseData = serialize.ReadContextResponse(reader); } using (XmlReader reader = XmlReader.Create(new StringReader(policy1.OuterXml))) { policy1Data = serialize.ReadPolicy(reader); } using (XmlReader reader = XmlReader.Create(new StringReader(policy2.OuterXml))) { policy2Data = serialize.ReadPolicy(reader); } Mock<IXacmlPolicyRepository> policyRepositoryMock = new Mock<IXacmlPolicyRepository>(); policyRepositoryMock.Setup(x => x.RequestPolicy(policy1Data.PolicyId)).Returns(policy1Data); policyRepositoryMock.Setup(x => x.RequestPolicy(policy2Data.PolicyId)).Returns(policy2Data); policyRepositoryMock.Setup(x => x.RequestPolicySet(It.IsAny<Uri>())).Returns<XacmlPolicySet>(null); EvaluationEngine engine = EvaluationEngineFactory.Create(policy, policyRepositoryMock.Object); XacmlContextResponse evaluatedResponse = engine.Evaluate(requestData, request); XacmlResponseAssert(responseData, evaluatedResponse); }
public void ConfirmanceTestsIIE_20(XmlDocument policy, XmlDocument request, XmlDocument response, XmlDocument aPolicy, XmlDocument aPolicySet) { var serialize = new Xacml20ProtocolSerializer(); XacmlContextRequest requestData; XacmlContextResponse responseData; XacmlPolicy aPolicyData; XacmlPolicySet aPolicySetData; using (XmlReader reader = XmlReader.Create(new StringReader(request.OuterXml))) { requestData = serialize.ReadContextRequest(reader); } using (XmlReader reader = XmlReader.Create(new StringReader(response.OuterXml))) { responseData = serialize.ReadContextResponse(reader); } using (XmlReader reader = XmlReader.Create(new StringReader(aPolicy.OuterXml))) { aPolicyData = serialize.ReadPolicy(reader); } using (XmlReader reader = XmlReader.Create(new StringReader(aPolicySet.OuterXml))) { aPolicySetData = serialize.ReadPolicySet(reader); } Mock<IXacmlPolicyRepository> policyRepositoryMock = new Mock<IXacmlPolicyRepository>(); policyRepositoryMock.Setup(x => x.RequestPolicy(aPolicyData.PolicyId)).Returns(aPolicyData); policyRepositoryMock.Setup(x => x.RequestPolicySet(aPolicySetData.PolicySetId)).Returns(aPolicySetData); EvaluationEngine engine = EvaluationEngineFactory.Create(policy, policyRepositoryMock.Object); XacmlContextResponse evaluatedResponse = engine.Evaluate(requestData, request); XacmlResponseAssert(responseData, evaluatedResponse); }
public void ConfirmanceTests_20(XmlDocument policy, XmlDocument request, XmlDocument response) { var serialize = new Xacml20ProtocolSerializer(); XacmlContextRequest requestData; XacmlContextResponse responseData; using (XmlReader reader = XmlReader.Create(new StringReader(request.OuterXml))) { requestData = serialize.ReadContextRequest(reader); } using (XmlReader reader = XmlReader.Create(new StringReader(response.OuterXml))) { responseData = serialize.ReadContextResponse(reader); } EvaluationEngine engine = EvaluationEngineFactory.Create(policy, null); XacmlContextResponse evaluatedResponse = engine.Evaluate(requestData, request); XacmlResponseAssert(responseData, evaluatedResponse); }
public void EvaluateRun() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(@"..\..\_Data\XACML_Samples\2.0\EvaluationSampleRequest.xml"); //c:\aa.xml var serialize = new Xacml20ProtocolSerializer(); using (XmlReader reader = XmlReader.Create(new StringReader(xmlDoc.OuterXml))) { // string data = reader.ReadOuterXml(); var data = serialize.ReadContextRequest(reader); XmlDocument xmlDoc2 = new XmlDocument(); xmlDoc2.Load(@"..\..\_Data\XACML_Samples\2.0\EvaluationSamplePolicy.xml"); //c:\aa.xml var serialize2 = new Xacml20ProtocolSerializer(); using (XmlReader reader2 = XmlReader.Create(new StringReader(xmlDoc2.OuterXml))) { var data2 = serialize2.ReadPolicy(reader2); //EvaluationEngine engine = new EvaluationEngine(data2); //engine.Evaluate(data); Assert.IsNotNull(data); } Assert.IsNotNull(data); } }