IAuthenticationResult IApplicationSync.AuthenticateAccount(string username, string password) { var request = new UsernamePasswordRequest(username, password, null, null) as IAuthenticationRequest; return this.AuthenticateAccount(request); }
public async Task Does_not_cache_login_attempts() { var cacheProvider = Caches.NewInMemoryCacheProvider().Build(); var requestExecutor = Substitute.For<IRequestExecutor>(); this.dataStore = TestDataStore.Create(requestExecutor, cacheProvider); var authResponse = @" { ""account"": { ""href"" : ""https://api.stormpath.com/v1/accounts/5BedLIvyfLjdKKEEXAMPLE"" } }"; // POST returns auth response requestExecutor .ExecuteAsync(Arg.Is<IHttpRequest>(req => req.Method == HttpMethod.Post), Arg.Any<CancellationToken>()) .Returns(Task.FromResult(new DefaultHttpResponse(200, "OK", new HttpHeaders(), authResponse, "application/json", transportError: false) as IHttpResponse)); var request = new UsernamePasswordRequest("foo", "bar", null, null) as IAuthenticationRequest; var authenticator = new BasicAuthenticator(this.dataStore); var result1 = await authenticator.AuthenticateAsync("/loginAttempts", request, null, CancellationToken.None); var result2 = await authenticator.AuthenticateAsync("/loginAttempts", request, null, CancellationToken.None); // Not cached await this.dataStore.RequestExecutor.Received(2).ExecuteAsync( Arg.Any<IHttpRequest>(), Arg.Any<CancellationToken>()); }
Task<IAuthenticationResult> IApplication.AuthenticateAccountAsync(string username, string password, CancellationToken cancellationToken) { var request = new UsernamePasswordRequest(username, password, null, null) as IAuthenticationRequest; return this.AsInterface.AuthenticateAccountAsync(request, cancellationToken); }