public void NewTokenWithArgs()
        {
            var args = new Dictionary<string, string>
            {
                {"alfa", "beta"}, 
                {"http://unittest-ip.com/alfa", "fisk & fugl"}
            };

            const string issuer = "http://unittest-ip.com/";
            const string audience = "http://unittest-rt.com/";
            var expiresOn = new DateTime(2034, 4, 7, 23, 12, 34, DateTimeKind.Utc);
            const string signingKey = "nh0BPopBTc7MAzviohoUbWNhO6NlV+LYm+sXOTPULxk=";

            var swt = new SimpleWebToken(issuer, audience, expiresOn, signingKey, args);
            Assert.AreEqual(expiresOn, swt.ExpiresOn);
            Assert.AreEqual(issuer, swt.Issuer);
            Assert.AreEqual(audience, swt.Audience);
            Assert.IsNotNull(swt.RawToken);
            Assert.IsNotNull(swt.Signature);
            Assert.IsTrue(swt.ValidateSignature(signingKey));
            foreach (var item in args)
                Assert.AreEqual(item.Value, swt[item.Key]);
            Assert.AreEqual(2, swt.Keys.Count());
            Assert.IsTrue(swt.Keys.Contains("alfa"));
            Assert.IsTrue(swt.Keys.Contains("http://unittest-ip.com/alfa"));
        }
Example #2
0
        public void RoundTrip()
        {
            var args = new Dictionary <string, string>
            {
                { "alfa", "beta" },
                { "http://unittest-ip.com/alfa", "fisk & fugl" }
            };

            const string issuer     = "http://unittest-ip.com/";
            const string audience   = "http://unittest-rt.com/";
            var          expiresOn  = new DateTime(2034, 4, 7, 23, 12, 34, DateTimeKind.Utc);
            const string signingKey = "nh0BPopBTc7MAzviohoUbWNhO6NlV+LYm+sXOTPULxk=";

            var swt0 = new SimpleWebToken().CreateToken(issuer, audience, expiresOn, signingKey, args);
            var swt  = new SimpleWebToken().CreateTokenFromRaw(swt0.RawToken);

            Assert.IsTrue(swt.ValidateSignature(signingKey));
            Assert.AreEqual(expiresOn, swt.ExpiresOn);
            Assert.AreEqual(issuer, swt.Issuer);
            Assert.AreEqual(audience, swt.Audience);
            Assert.IsNotNull(swt.RawToken);
            Assert.IsNotNull(swt.Signature);
            foreach (var item in args)
            {
                Assert.AreEqual(item.Value, swt[item.Key]);
            }
            Assert.AreEqual(2, swt.Keys.Count());
            Assert.IsTrue(swt.Keys.Contains("alfa"));
            Assert.IsTrue(swt.Keys.Contains("http://unittest-ip.com/alfa"));
        }
 public void FromValidEncoded()
 {
     const string tokenString = "http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=upwJyUGTUPWMEiU3ds61jcsJUeUFjRza6sNEcdyNYnw%3d&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=uri%3aWindowsLiveID&Audience=http%3a%2f%2fnoisesentinel-dev-adminapi.azurewebsites.net%2f&ExpiresOn=1356650451&Issuer=https%3a%2f%2fbruelandkjaer.accesscontrol.windows.net%2f&HMACSHA256=npM6PtfuNUtG6EJ1gpS0s9rVvEx%2buP4UIXe3GB1t4CM%3d";
     var swt = new SimpleWebToken(tokenString);
     Assert.AreEqual(tokenString, swt.RawToken);
     Assert.AreEqual(new DateTime(2012, 12, 27, 23, 20, 51, DateTimeKind.Utc), swt.ExpiresOn);
     Assert.AreEqual("https://bruelandkjaer.accesscontrol.windows.net/", swt.Issuer);
     Assert.AreEqual("http://noisesentinel-dev-adminapi.azurewebsites.net/", swt.Audience);
     Assert.AreEqual("uri:WindowsLiveID", swt["http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider"]);
     Assert.AreEqual("upwJyUGTUPWMEiU3ds61jcsJUeUFjRza6sNEcdyNYnw=", swt["http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"]);
     Assert.AreEqual("npM6PtfuNUtG6EJ1gpS0s9rVvEx+uP4UIXe3GB1t4CM=", swt.Signature);
     Assert.IsTrue(swt.ValidateSignature("eP+VgZq3YVUXSDt71lKnCRoxdoGngCT9WR4vTprH9TY="));
     Assert.IsFalse(swt.ValidateSignature("nh0BPopBTc7MAzviohoUbWNhO6NlV+LYm+sXOTPULxk="));
     Assert.IsNotNull(swt);
     Assert.AreEqual(2, swt.Keys.Count());
     Assert.IsTrue(swt.Keys.Contains("http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider"));
     Assert.IsTrue(swt.Keys.Contains("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"));
 }
Example #4
0
        public void FromValidEncoded()
        {
            const string tokenString = "http%3a%2f%2fschemas.xmlsoap.org%2fws%2f2005%2f05%2fidentity%2fclaims%2fnameidentifier=upwJyUGTUPWMEiU3ds61jcsJUeUFjRza6sNEcdyNYnw%3d&http%3a%2f%2fschemas.microsoft.com%2faccesscontrolservice%2f2010%2f07%2fclaims%2fidentityprovider=uri%3aWindowsLiveID&Audience=http%3a%2f%2fnoisesentinel-dev-adminapi.azurewebsites.net%2f&ExpiresOn=1356650451&Issuer=https%3a%2f%2fbruelandkjaer.accesscontrol.windows.net%2f&HMACSHA256=npM6PtfuNUtG6EJ1gpS0s9rVvEx%2buP4UIXe3GB1t4CM%3d";
            var          swt         = new SimpleWebToken().CreateTokenFromRaw(tokenString);

            Assert.AreEqual(tokenString, swt.RawToken);
            Assert.AreEqual(new DateTime(2012, 12, 27, 23, 20, 51, DateTimeKind.Utc), swt.ExpiresOn);
            Assert.AreEqual("https://bruelandkjaer.accesscontrol.windows.net/", swt.Issuer);
            Assert.AreEqual("http://noisesentinel-dev-adminapi.azurewebsites.net/", swt.Audience);
            Assert.AreEqual("uri:WindowsLiveID", swt["http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider"]);
            Assert.AreEqual("upwJyUGTUPWMEiU3ds61jcsJUeUFjRza6sNEcdyNYnw=", swt["http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"]);
            Assert.AreEqual("npM6PtfuNUtG6EJ1gpS0s9rVvEx+uP4UIXe3GB1t4CM=", swt.Signature);
            Assert.IsTrue(swt.ValidateSignature("eP+VgZq3YVUXSDt71lKnCRoxdoGngCT9WR4vTprH9TY="));
            Assert.IsFalse(swt.ValidateSignature("nh0BPopBTc7MAzviohoUbWNhO6NlV+LYm+sXOTPULxk="));
            Assert.IsNotNull(swt);
            Assert.AreEqual(2, swt.Keys.Count());
            Assert.IsTrue(swt.Keys.Contains("http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider"));
            Assert.IsTrue(swt.Keys.Contains("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"));
        }
        public void NewToken()
        {
            const string issuer = "http://unittest-ip.com/";
            const string audience = "http://unittest-rt.com/";
            var expiresOn = new DateTime(2034, 4, 7, 23, 12, 34, DateTimeKind.Utc);
            const string signingKey = "nh0BPopBTc7MAzviohoUbWNhO6NlV+LYm+sXOTPULxk=";

            var swt = new SimpleWebToken(issuer, audience, expiresOn, signingKey);
            Assert.AreEqual(expiresOn, swt.ExpiresOn);
            Assert.AreEqual(issuer, swt.Issuer);
            Assert.AreEqual(audience, swt.Audience);
            Assert.IsNotNull(swt.RawToken);
            Assert.IsNotNull(swt.Signature);
            Assert.IsTrue(swt.ValidateSignature(signingKey));
            Assert.AreEqual(0, swt.Keys.Count());
        }
Example #6
0
        public void NewToken()
        {
            const string issuer     = "http://unittest-ip.com/";
            const string audience   = "http://unittest-rt.com/";
            var          expiresOn  = new DateTime(2034, 4, 7, 23, 12, 34, DateTimeKind.Utc);
            const string signingKey = "nh0BPopBTc7MAzviohoUbWNhO6NlV+LYm+sXOTPULxk=";

            var swt = new SimpleWebToken().CreateToken(issuer, audience, expiresOn, signingKey);

            Assert.AreEqual(expiresOn, swt.ExpiresOn);
            Assert.AreEqual(issuer, swt.Issuer);
            Assert.AreEqual(audience, swt.Audience);
            Assert.IsNotNull(swt.RawToken);
            Assert.IsNotNull(swt.Signature);
            Assert.IsTrue(swt.ValidateSignature(signingKey));
            Assert.AreEqual(0, swt.Keys.Count());
        }