public void LogonAuthCycleWithTokenAndRefresh() { Loggy.Default.Level = LogLevel.Error; CheckRate(i => { if (i%100 == 0) { var es = (UserService) _container.Get<IUserService>(); es.UserCache.Clear(); } var identity = _container.Get<ILogonService>().Logon("esuser", Epass); var req = new HttpRequestDescriptor { User = new GenericPrincipal(identity, null), UserAgent = "testagent", RemoteEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3456) }; var roles =(RoleResolverService) _container.Get<IRoleResolverService>(); roles.Cache.Clear(); var isinrole = roles.IsInRole(identity, SecurityConst.ROLE_ADMIN); isinrole = roles.IsInRole(identity, "role2"); isinrole = roles.IsInRole(identity, "role1"); var hts = _container.Get<IHttpTokenService>(); var token = hts.Create(req); var enc = _container.Get<ITokenEncryptor>(); var cookie = enc.Encrypt(token); req.Headers = new Dictionary<string, string>(); req.Headers["Cookie"] = "testauth=" + cookie; var token2 = hts.Extract(req); hts.IsValid(req, token2); }); Loggy.Default.Level = LogLevel.All; }
public void RedirectsHtmlNotAuth() { var id = new Identity { IsAuthenticated = false }; var req = new HttpRequestDescriptor { User = new GenericPrincipal(id, null), Uri = new Uri("http://host/test.html") }; var auth = a.Authorize(req); Assert.True(!string.IsNullOrWhiteSpace(auth.Redirect)); }
public void LogonAuthCycleWithTokenAndRefresh() { Loggy.Default.Level = LogLevel.Error; CheckRate(i => { if (i % 100 == 0) { var es = (UserService)_container.Get <IUserService>(); es.UserCache.Clear(); } var identity = _container.Get <ILogonService>().Logon("esuser", Epass); var req = new HttpRequestDescriptor { User = new GenericPrincipal(identity, null), UserAgent = "testagent", RemoteEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3456) }; var roles = (RoleResolverService)_container.Get <IRoleResolverService>(); roles.Cache.Clear(); var isinrole = roles.IsInRole(identity, SecurityConst.ROLE_ADMIN); isinrole = roles.IsInRole(identity, "role2"); isinrole = roles.IsInRole(identity, "role1"); var hts = _container.Get <IHttpTokenService>(); var token = hts.Create(req); var enc = _container.Get <ITokenEncryptor>(); var cookie = enc.Encrypt(token); req.Headers = new Dictionary <string, string>(); req.Headers["Cookie"] = "testauth=" + cookie; var token2 = hts.Extract(req); hts.IsValid(req, token2); }); Loggy.Default.Level = LogLevel.All; }
public void CustomRoleDeny() { var id = new Identity { IsAuthenticated = true, User = new User()}; var req = new HttpRequestDescriptor { User = new GenericPrincipal(id, null), Uri = new Uri("http://host/roled.html") }; var auth = a.Authorize(req); Assert.False(auth.Process); Assert.NotNull(auth.Error); }
public void DenyUnknownNotAuth() { var id = new Identity { IsAuthenticated = false }; var req = new HttpRequestDescriptor { User = new GenericPrincipal(id, null), Uri = new Uri("http://host/operation") }; var auth = a.Authorize(req); Assert.NotNull(auth.Error); }
public void CanGetJsonFromQueryUrlEncoded() { var req = new HttpRequestDescriptor { Uri = new Uri(@"http://localhost/test?{""my"":""test+%23%20%23%2Bbest=1&2""}") }; var result = RequestParameters.Create(req); Assert.NotNull(result.QueryJson); Assert.AreEqual("test # #+best=1&2", result.Get("my")); }
public void AllowAllAuthToAnyHtml() { var id = new Identity { IsAuthenticated = true }; var req = new HttpRequestDescriptor { User = new GenericPrincipal(id, null), Uri = new Uri("http://host/some.html") }; var auth = a.Authorize(req); Assert.True(auth.Process); }
public void CustomRedirection() { var id = new Identity { IsAuthenticated = false }; var req = new HttpRequestDescriptor { User = new GenericPrincipal(id, null), Uri = new Uri("http://host/spredir.html") }; var auth = a.Authorize(req); Assert.AreEqual(@"/public.html?referer=/spredir.html", auth.Redirect); }
public void CustomPublicResource() { var id = new Identity { IsAuthenticated = false }; var req = new HttpRequestDescriptor { User = new GenericPrincipal(id, null), Uri = new Uri("http://host/public.html") }; var auth = a.Authorize(req); Assert.True(auth.Process); }
public void DenyUnknownNotAuth() { var id = new Identity { IsAuthenticated = false }; var req = new HttpRequestDescriptor { User = new GenericPrincipal(id, null), Uri = new Uri("http://host/operation") }; var auth = a.Authorize(req); Assert.NotNull(auth.Error); }
public void RedirectsHtmlNotAuth() { var id = new Identity { IsAuthenticated = false }; var req = new HttpRequestDescriptor { User = new GenericPrincipal(id, null), Uri = new Uri("http://host/test.html") }; var auth = a.Authorize(req); Assert.True(!string.IsNullOrWhiteSpace(auth.Redirect)); }
public void AllowAnyCss() { var id = new Identity { IsAuthenticated = false }; var req = new HttpRequestDescriptor { User = new GenericPrincipal(id, null), Uri = new Uri("http://host/test.css") }; var auth = a.Authorize(req); Assert.True(auth.Process); }
public void AllowPathedRole() { var id = new Identity { IsAuthenticated = true, IsAdmin = true }; var req = new HttpRequestDescriptor { User = new GenericPrincipal(id, null), Uri = new Uri("http://host/admin-data.html") }; var auth = a.Authorize(req); Assert.True(auth.Process); }
public void CustomRoleDeny() { var id = new Identity { IsAuthenticated = true, User = new User() }; var req = new HttpRequestDescriptor { User = new GenericPrincipal(id, null), Uri = new Uri("http://host/roled.html") }; var auth = a.Authorize(req); Assert.False(auth.Process); Assert.NotNull(auth.Error); }
public void GuestAuth() { var req = new HttpRequestDescriptor { RemoteEndPoint = new IPEndPoint(IPAddress.Parse("234.43.123.25"), 21324), LocalEndPoint = new IPEndPoint(IPAddress.Parse("192.168.0.100"), 14141) }; var i = (Identity)di.GetUserIdentity(req); Assert.True(i.IsGuest); Assert.True(i.IsAuthenticated); Assert.AreEqual("guest", i.AuthenticationType); Assert.False(i.IsAdmin); Assert.AreEqual(di.AnyGuestName, i.Name); }
public void LocalGuestAuth() { var req = new HttpRequestDescriptor { RemoteEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 21324), LocalEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 14141) }; var i = (Identity)di.GetUserIdentity(req); Assert.True(i.IsGuest); Assert.True(i.IsAuthenticated); Assert.AreEqual("localguest", i.AuthenticationType); Assert.True(i.IsAdmin); Assert.AreEqual(di.LocalGuestName, i.Name); }
public void CanGetJsonFromFormUrlEncoded() { var str = new MemoryStream(); var strw = new StreamWriter(str); strw.Write(@"{""my"":""test+%23%20%23+best=1&2""}"); strw.Flush(); str.Position = 0; var req = new HttpRequestDescriptor { Uri = new Uri(@"http://localhost/test"), Method = "POST", Stream = str, ContentLength = str.Length }; var result = RequestParameters.Create(req); Assert.AreEqual("test+# #+best=1&2", result.Get("my")); Assert.NotNull(result.FormJson); }
public void TrustAuthTwo() { var req = new HttpRequestDescriptor { RemoteEndPoint = new IPEndPoint(IPAddress.Parse("192.168.0.2"), 21324), LocalEndPoint = new IPEndPoint(IPAddress.Parse("192.168.0.3"), 3450), Headers = new Dictionary <string, string> { { "Origin", "http://127.0.0.1:9200" } } }; var i = (Identity)di.GetUserIdentity(req); Assert.False(i.IsGuest); Assert.True(i.IsAuthenticated); Assert.AreEqual("trusted", i.AuthenticationType); Assert.True(i.IsAdmin); Assert.AreEqual("controller", i.Name); }
public void CanReadHardFormDataFromPost() { var str = new MemoryStream(); var strw = new StreamWriter(str); strw.Write(@"x=1&y=2=3+4&z=5=%26"); strw.Flush(); str.Position = 0; var req = new HttpRequestDescriptor { Uri = new Uri(@"http://localhost/test"), Method = "POST", Stream = str, ContentLength = str.Length }; var result = RequestParameters.Create(req); Assert.AreEqual("1", result.Get("x")); Assert.AreEqual("2=3 4", result.Get("y")); Assert.AreEqual("5=&", result.Get("z")); }
public void CanRetrieve() { var logon = _container.Get<ILogonService>(); var req = new HttpRequestDescriptor { User = new GenericPrincipal(logon.Logon("fuser", Fpass), null), UserAgent = "testagent", RemoteEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3456) }; var hts = _container.Get<IHttpTokenService>(); var token = hts.Create(req); var enc = _container.Get<ITokenEncryptor>(); var cookie = enc.Encrypt(token); req.Headers = new Dictionary<string, string>(); req.Headers["Cookie"] = "testauth=" + cookie; var token2 = hts.Extract(req); Assert.True(hts.IsValid(req,token2)); Assert.AreEqual(token.stringify(),token2.stringify()); }
public void CanCreateAndSet() { var logon = _container.Get<ILogonService>(); var req = new HttpRequestDescriptor { User = new GenericPrincipal(logon.Logon("fuser", Fpass), null), UserAgent = "testagent", RemoteEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"),3456 ) }; var hts = _container.Get<IHttpTokenService>(); var token = hts.Create(req); Assert.True(hts.IsValid(req,token)); var res = new HttpResponseDescriptor(); hts.Store(res,new Uri("http://my.best.com"),token); var cookie = res.Cookies["testauth"]; Assert.NotNull(cookie); Assert.True(cookie.Secure); Assert.True(cookie.HttpOnly); Assert.AreEqual(".best.com",cookie.Domain); Assert.AreEqual("/",cookie.Path); Assert.Less(100,cookie.Value.Length); }
public void CanRetrieve() { var logon = _container.Get <ILogonService>(); var req = new HttpRequestDescriptor { User = new GenericPrincipal(logon.Logon("fuser", Fpass), null), UserAgent = "testagent", RemoteEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3456) }; var hts = _container.Get <IHttpTokenService>(); var token = hts.Create(req); var enc = _container.Get <ITokenEncryptor>(); var cookie = enc.Encrypt(token); req.Headers = new Dictionary <string, string>(); req.Headers["Cookie"] = "testauth=" + cookie; var token2 = hts.Extract(req); Assert.True(hts.IsValid(req, token2)); Assert.AreEqual(token.stringify(), token2.stringify()); }
public static string Call(this IHostServer host, string command) { var h = host.GetHandler(command); var ms = new MemoryStream(); var rs = new HttpResponseDescriptor { Stream = ms, NoCloseStream = true }; var rq = new HttpRequestDescriptor { Uri = new Uri("http://localhost" + command) }; var ctx = new WebContext { Request = rq, Response = rs }; h.Run(host, ctx, null, new CancellationToken()); var len = ms.Position; ms.Position = 0; var result = Encoding.UTF8.GetString(ms.GetBuffer(), 0, (int)len); return(result); }
public void Performance() { Loggy.Default.Level = LogLevel.Error; CheckRate(i => { var logon = _container.Get <ILogonService>(); var req = new HttpRequestDescriptor { User = new GenericPrincipal(logon.Logon("fuser", Fpass), null), UserAgent = "testagent", RemoteEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3456) }; var hts = _container.Get <IHttpTokenService>(); var token = hts.Create(req); var enc = _container.Get <ITokenEncryptor>(); var cookie = enc.Encrypt(token); req.Headers = new Dictionary <string, string>(); req.Headers["Cookie"] = "testauth=" + cookie; var token2 = hts.Extract(req); hts.IsValid(req, token2); }); Loggy.Default.Level = LogLevel.All; }
public void CanCreateAndSet() { var logon = _container.Get <ILogonService>(); var req = new HttpRequestDescriptor { User = new GenericPrincipal(logon.Logon("fuser", Fpass), null), UserAgent = "testagent", RemoteEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3456) }; var hts = _container.Get <IHttpTokenService>(); var token = hts.Create(req); Assert.True(hts.IsValid(req, token)); var res = new HttpResponseDescriptor(); hts.Store(res, new Uri("http://my.best.com"), token); var cookie = res.Cookies["testauth"]; Assert.NotNull(cookie); Assert.True(cookie.Secure); Assert.True(cookie.HttpOnly); Assert.AreEqual(".best.com", cookie.Domain); Assert.AreEqual("/", cookie.Path); Assert.Less(100, cookie.Value.Length); }
public void Performance() { Loggy.Default.Level = LogLevel.Error; CheckRate(i => { var logon = _container.Get<ILogonService>(); var req = new HttpRequestDescriptor { User = new GenericPrincipal(logon.Logon("fuser", Fpass), null), UserAgent = "testagent", RemoteEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3456) }; var hts = _container.Get<IHttpTokenService>(); var token = hts.Create(req); var enc = _container.Get<ITokenEncryptor>(); var cookie = enc.Encrypt(token); req.Headers = new Dictionary<string, string>(); req.Headers["Cookie"] = "testauth=" + cookie; var token2 = hts.Extract(req); hts.IsValid(req, token2); }); Loggy.Default.Level = LogLevel.All; }
public void AllowPathedRole() { var id = new Identity { IsAuthenticated = true, IsAdmin = true}; var req = new HttpRequestDescriptor { User = new GenericPrincipal(id, null), Uri = new Uri("http://host/admin-data.html") }; var auth = a.Authorize(req); Assert.True(auth.Process); }
public static string Call(this IHostServer host, string command) { var h = host.GetHandler(command); var ms = new MemoryStream(); var rs = new HttpResponseDescriptor { Stream = ms, NoCloseStream = true }; var rq = new HttpRequestDescriptor { Uri = new Uri("http://localhost" + command) }; var ctx = new WebContext{Request = rq,Response=rs}; h.Run(host, ctx, null, new CancellationToken()); var len = ms.Position; ms.Position = 0; var result = Encoding.UTF8.GetString(ms.GetBuffer(), 0, (int)len); return result; }
public void AllowAllAuthToAnyHtml() { var id = new Identity { IsAuthenticated = true }; var req = new HttpRequestDescriptor { User = new GenericPrincipal(id, null), Uri = new Uri("http://host/some.html") }; var auth = a.Authorize(req); Assert.True(auth.Process); }
public void CustomRedirection() { var id = new Identity { IsAuthenticated = false }; var req = new HttpRequestDescriptor { User = new GenericPrincipal(id, null), Uri = new Uri("http://host/spredir.html") }; var auth = a.Authorize(req); Assert.AreEqual(@"/public.html?referer=/spredir.html", auth.Redirect); }
public void CustomPublicResource() { var id = new Identity { IsAuthenticated = false }; var req = new HttpRequestDescriptor { User = new GenericPrincipal(id, null), Uri = new Uri("http://host/public.html") }; var auth = a.Authorize(req); Assert.True(auth.Process); }
public void AllowAnyCss() { var id = new Identity {IsAuthenticated = false}; var req = new HttpRequestDescriptor {User =new GenericPrincipal(id,null), Uri = new Uri("http://host/test.css")}; var auth = a.Authorize(req); Assert.True(auth.Process); }