public void Authenticate_Returns_ClientFinalMessage() { var mockedService = new Mock <IIOService>(); mockedService.Setup(x => x.Execute(It.IsAny <SaslStart>(), It.IsAny <IConnection>())) .Returns(new OperationResult <string>() { Status = ResponseStatus.AuthenticationContinue, Message = "r=fyko+d2lbbFgONRv9qkxdawL3rfcNHYJY1ZVvWVs7j,s=QSXCR+Q6sek8bf92,i=4096" }); mockedService.Setup(x => x.Execute(It.IsAny <SaslStep>(), It.IsAny <IConnection>())) .Returns(new OperationResult <string>() { Status = ResponseStatus.AuthenticationContinue, Message = "v=rmF9pqV8S7suAoZWja4dJRkFsKQ=" }); var mockedConnection = new Mock <IConnection>(); var authenticator = new ScramShaMechanism(new DefaultTranscoder(), MechanismType.ScramSha1); authenticator.ClientNonce = "fyko+d2lbbFgONRv9qkxdawL"; authenticator.Authenticate(mockedConnection.Object, "user", "pencil"); var expected = "c=biws,r=fyko+d2lbbFgONRv9qkxdawL3rfcNHYJY1ZVvWVs7j,p=v0X8v3Bz2T0CJGbJQyF0X+HI4Ts="; Assert.AreEqual(expected, authenticator.ClientFinalMessage); }
public async Task Authenticate_Connection() { var options = ClusterFixture.GetClusterOptions(); options.WithConnectionString(ClusterFixture.GetSettings().ConnectionString); var ipEndPointService = new IpEndPointService( new DnsClientDnsResolver(new LookupClient(), new DotNetDnsClient(), new Mock <ILogger <DnsClientDnsResolver> >().Object)); var factory = new ConnectionFactory(options, ipEndPointService, new Mock <ILogger <MultiplexingConnection> >().Object, new Mock <ILogger <SslConnection> >().Object); var endPoint = options.ConnectionStringValue.GetBootstrapEndpoints().First(); var connection = await factory .CreateAndConnectAsync(endPoint) .ConfigureAwait(false); var sha1Mechanism = new ScramShaMechanism(MechanismType.ScramSha1, options.Password, options.UserName, new Mock <ILogger <ScramShaMechanism> >().Object, NoopRequestTracer.Instance, new OperationConfigurator(new JsonTranscoder(), Mock.Of <IOperationCompressor>(), new DefaultObjectPool <OperationBuilder>(new OperationBuilderPoolPolicy()), new BestEffortRetryStrategy())); await sha1Mechanism.AuthenticateAsync(connection).ConfigureAwait(false); }
public void ScramShaMechanism_Authenticate_IsPopulated() { var transcoder = new DefaultTranscoder(new DefaultConverter()); string password = "******"; string username = "******"; var mech = new ScramShaMechanism(transcoder, username, password, MechanismType.ScramSha256); Assert.That(() => !string.IsNullOrEmpty(mech.ClientNonce)); }
public void ScramShaMechanism_ClientNonce_IsPopulated() { var transcoder = new LegacyTranscoder(); var password = "******"; var username = "******"; var mech = new ScramShaMechanism(transcoder, MechanismType.ScramSha256, username, password, new Mock <ILogger <ScramShaMechanism> >().Object, NullRequestTracer.Instance); Assert.True(!string.IsNullOrEmpty(mech.ClientNonce)); }
public void ScramShaMechanism_ClientNonce_IsPopulated() { var password = "******"; var username = "******"; var mech = new ScramShaMechanism(MechanismType.ScramSha256, username, password, new Mock <ILogger <ScramShaMechanism> >().Object, NoopRequestTracer.Instance, Mock.Of <IOperationConfigurator>()); Assert.True(!string.IsNullOrEmpty(mech.ClientNonce)); }
public void When_InValid_Credentials_Provided_Authenticate_Returns_False() { var authenticator = new ScramShaMechanism(_ioService, new DefaultTranscoder(), MechanismType.ScramSha1); _ioService.SaslMechanism = authenticator; foreach (var connection in _ioService.ConnectionPool.Connections) { var isAuthenticated = authenticator.Authenticate(connection, "authenticated", "secret2"); Assert.IsFalse(isAuthenticated); } }
public void When_InValid_Credentials_Provided_Authenticate_Returns_False() { var authenticator = new ScramShaMechanism(new DefaultTranscoder(), MechanismType.ScramSha1); _ioService.SaslMechanism = authenticator; foreach (var connection in _ioService.ConnectionPool.Connections) { var isAuthenticated = authenticator.Authenticate(connection, "authenticated", "secret2"); Assert.IsFalse(isAuthenticated); } }
public void DecodeResponse_ConvertsServerResponse_ToDictionary() { var response = "r=SldM4VtjuyfZSJPHsUwgFaAFooUHKcg0l4HJdOkwmho=f740159ca94603c2,s=FOim+HVE8xUmn9Std27QgrqZiWzPLM6K1NiklQ3KunEugY1OSG/jlEzQ9XVdLkcSIqegM5O2gLF2mAQio+CXBA==,i=4096"; var authenticator = new ScramShaMechanism(new DefaultTranscoder(), MechanismType.ScramSha512); var actual = authenticator.DecodeResponse(response); var expected = new Dictionary <string, string> { { "r", "SldM4VtjuyfZSJPHsUwgFaAFooUHKcg0l4HJdOkwmho=f740159ca94603c2" }, { "s", "FOim+HVE8xUmn9Std27QgrqZiWzPLM6K1NiklQ3KunEugY1OSG/jlEzQ9XVdLkcSIqegM5O2gLF2mAQio+CXBA==" }, { "i", "4096" } }; Assert.AreEqual(expected, actual); }
public void DecodeResponse_ConvertsServerResponse_ToDictionary() { var response = "r=SldM4VtjuyfZSJPHsUwgFaAFooUHKcg0l4HJdOkwmho=f740159ca94603c2,s=FOim+HVE8xUmn9Std27QgrqZiWzPLM6K1NiklQ3KunEugY1OSG/jlEzQ9XVdLkcSIqegM5O2gLF2mAQio+CXBA==,i=4096"; var authenticator = new ScramShaMechanism(_ioService, new DefaultTranscoder(), MechanismType.ScramSha512); var actual = authenticator.DecodeResponse(response); var expected = new Dictionary<string, string> { {"r", "SldM4VtjuyfZSJPHsUwgFaAFooUHKcg0l4HJdOkwmho=f740159ca94603c2"}, {"s", "FOim+HVE8xUmn9Std27QgrqZiWzPLM6K1NiklQ3KunEugY1OSG/jlEzQ9XVdLkcSIqegM5O2gLF2mAQio+CXBA=="}, {"i", "4096"} }; Assert.AreEqual(expected, actual); }
public async Task Authenticate_Connection() { var options = ClusterFixture.GetClusterOptions(); options.ConnectionString(ClusterFixture.GetSettings().ConnectionString); var factory = new ConnectionFactory(options, new Mock <ILogger <MultiplexingConnection> >().Object, new Mock <ILogger <SslConnection> >().Object); var connection = await factory .CreateAndConnectAsync(options.ServersValue.First().GetIpEndPoint(11210, false)) .ConfigureAwait(false); var sha1Mechanism = new ScramShaMechanism(new LegacyTranscoder(), MechanismType.ScramSha1, options.Password, options.UserName, new Mock <ILogger <ScramShaMechanism> >().Object); await sha1Mechanism.AuthenticateAsync(connection).ConfigureAwait(false); }
public async Task Authenticate_Connection() { var options = ClusterFixture.GetClusterOptions(); options.WithConnectionString(ClusterFixture.GetSettings().ConnectionString); var factory = new ConnectionFactory(options, new Mock <ILogger <MultiplexingConnection> >().Object, new Mock <ILogger <SslConnection> >().Object); var ipEndPointService = new IpEndPointService( new DnsClientDnsResolver(new LookupClient(), new Mock <ILogger <DnsClientDnsResolver> >().Object), options); var ipEndPoint = await ipEndPointService.GetIpEndPointAsync( options.ConnectionStringValue.GetBootstrapEndpoints().First().Host, 11210); var connection = await factory .CreateAndConnectAsync(ipEndPoint) .ConfigureAwait(false); var sha1Mechanism = new ScramShaMechanism(new LegacyTranscoder(), MechanismType.ScramSha1, options.Password, options.UserName, new Mock <ILogger <ScramShaMechanism> >().Object); await sha1Mechanism.AuthenticateAsync(connection).ConfigureAwait(false); }
public void ScramShaMechanism_Authenticate_IsPopulated() { var service = new Mock<IIOService>().Object; var transcoder = new DefaultTranscoder(new DefaultConverter()); string password = "******"; string username = "******"; var mech = new ScramShaMechanism(service, transcoder, username, password, MechanismType.ScramSha256); Assert.That(() => !string.IsNullOrEmpty(mech.ClientNonce)); }
public void Authenticate_Returns_ClientFinalMessage() { var mockedService = new Mock<IIOService>(); mockedService.Setup(x => x.Execute(It.IsAny<SaslStart>(), It.IsAny<IConnection>())) .Returns(new OperationResult<string>() { Status = ResponseStatus.AuthenticationContinue, Message = "r=fyko+d2lbbFgONRv9qkxdawL3rfcNHYJY1ZVvWVs7j,s=QSXCR+Q6sek8bf92,i=4096" }); mockedService.Setup(x => x.Execute(It.IsAny<SaslStep>(), It.IsAny<IConnection>())) .Returns(new OperationResult<string>() { Status = ResponseStatus.AuthenticationContinue, Message = "v=rmF9pqV8S7suAoZWja4dJRkFsKQ=" }); var mockedConnection = new Mock<IConnection>(); var authenticator = new ScramShaMechanism(mockedService.Object, new DefaultTranscoder(), MechanismType.ScramSha1); authenticator.ClientNonce = "fyko+d2lbbFgONRv9qkxdawL"; authenticator.Authenticate(mockedConnection.Object, "user", "pencil"); var expected = "c=biws,r=fyko+d2lbbFgONRv9qkxdawL3rfcNHYJY1ZVvWVs7j,p=v0X8v3Bz2T0CJGbJQyF0X+HI4Ts="; Assert.AreEqual(expected, authenticator.ClientFinalMessage); }