Beispiel #1
0
        public void SamlTest()
        {
            PvpToken token = new PvpToken(PvpVersion.Version21);

            token.Attributes.Add(new PvpAttributeUserId("*****@*****.**"));
            token.Attributes.Add(new PvpAttributeRoles("Test(A=1)"));
            string xml = token.GetSamlAttributeStatement().OuterXml;

            Assert.IsTrue(xml.StartsWith("<AttributeStatement ID="));
            Assert.IsTrue(xml.EndsWith(" Version=\"2.0\" xmlns=\"urn:oasis:names:tc:SAML:2.0:assertion\"><Attribute Name=\"urn:oid:1.2.40.0.10.2.1.1.261.10\" FriendlyName=\"PVP-VERSION\" NameFormat=\"urn:oasis:names:tc:SAML:2.0:attrname-format:uri\"><AttributeValue>2.1</AttributeValue></Attribute><Attribute Name=\"urn:oid:0.9.2342.19200300.100.1.1\" FriendlyName=\"USERID\" NameFormat=\"urn:oasis:names:tc:SAML:2.0:attrname-format:uri\"><AttributeValue>[email protected]</AttributeValue></Attribute><Attribute Name=\"urn:oid:1.2.40.0.10.2.1.1.261.30\" FriendlyName=\"ROLES\" NameFormat=\"urn:oasis:names:tc:SAML:2.0:attrname-format:uri\"><AttributeValue>Test(A=1)</AttributeValue></Attribute></AttributeStatement>"));
            //var x="<AttributeStatement ID=\"_aeb030e8-055d-4618-b0df-b8a0dcc4dd60\" Version=\"2.0\" xmlns=\"urn:oasis:names:tc:SAML:2.0:assertion\"><Attribute Name=\"urn:oid:1.2.40.0.10.2.1.1.261.10\" FriendlyName=\"PVP-VERSION\" NameFormat=\"urn:oasis:names:tc:SAML:2.0:attrname-format:uri\"><AttributeValue>2.1</AttributeValue></Attribute><Attribute Name=\"urn:oid:0.9.2342.19200300.100.1.1\" FriendlyName=\"USERID\" NameFormat=\"urn:oasis:names:tc:SAML:2.0:attrname-format:uri\"><AttributeValue>[email protected]</AttributeValue></Attribute><Attribute Name=\"urn:oid:1.2.40.0.10.2.1.1.261.30\" FriendlyName=\"ROLES\" NameFormat=\"urn:oasis:names:tc:SAML:2.0:attrname-format:uri\"><AttributeValue>Test(A=1)</AttributeValue></Attribute></AttributeStatement>"
        }
Beispiel #2
0
        public void ParseTokenTest()
        {
            NameValueCollection headers     = GetNameValueCollection21();
            PvpToken            token       = new PvpToken(headers);
            PvpToken            parsedToken = new PvpToken(token.GetSamlAttributeStatement());

            Assert.AreEqual(PvpVersion.Version21, parsedToken.Version);
            Assert.AreEqual("*****@*****.**", parsedToken.GetAttributeValue(PvpAttributes.USERID));
            Assert.AreEqual("Beispielrolle(GKZ=60420);Beispielrolle2(ABC=XYZ, DEF=4711)",
                            parsedToken.GetAttributeValue(PvpAttributes.ROLES));
            foreach (HttpHeader header in parsedToken.GetHeaders())
            {
                if (header.Name.Equals("X-PVP-roles", StringComparison.InvariantCultureIgnoreCase))
                {
                    continue;
                }

                Assert.AreEqual(headers[header.Name], header.Value, "Fehler bei " + header.Name);
            }
        }
Beispiel #3
0
        public void ParseSamlValuesTest()
        {
            NameValueCollection headers   = GetNameValueCollection21();
            PvpToken            token     = new PvpToken(headers);
            XElement            statement = XElement.Parse(token.GetSamlAttributeStatement().OuterXml);
            var values = statement.Elements(PvpToken.SamlXNamespace + "Attribute").ToDictionary(a => a.Attribute("Name").Value,
                                                                                                a =>
                                                                                                a.Elements(PvpToken.SamlXNamespace + "AttributeValue").Select(v => v.Value).ToList());
            PvpToken parsedToken = new PvpToken(values);

            Assert.AreEqual(PvpVersion.Version21, parsedToken.Version);
            Assert.AreEqual("*****@*****.**", parsedToken.GetAttributeValue(PvpAttributes.USERID));
            Assert.AreEqual("Beispielrolle(GKZ=60420);Beispielrolle2(ABC=XYZ, DEF=4711)",
                            parsedToken.GetAttributeValue(PvpAttributes.ROLES));
            foreach (HttpHeader header in parsedToken.GetHeaders())
            {
                if (header.Name.Equals("X-PVP-roles", StringComparison.InvariantCultureIgnoreCase))
                {
                    continue;
                }

                Assert.AreEqual(headers[header.Name], header.Value, "Fehler bei " + header.Name);
            }
        }