示例#1
0
        public Services(IConfigSource config, string configName, WebApp webApp)
        {
            m_log.Debug("[Wifi]: Services Starting...");

            m_WebApp = webApp;

            m_ServerAdminPassword = webApp.RemoteAdminPassword;
            //m_log.DebugFormat("[Services]: RemoteAdminPassword is {0}", m_ServerAdminPassword);
            m_LastStatisticsUpdate = new DateTime();

            // Create the necessary services
            m_UserAccountService    = new UserAccountService(config);
            m_AuthenticationService = new PasswordAuthenticationService(config);
            m_InventoryService      = new InventoryService(config);
            m_GridService           = new GridService(config);
            m_GridUserService       = new GridUserService(config);
            m_AvatarService         = new AvatarService(config);

            // Create the "God" account if it doesn't exist
            CreateGod();

            // Connect to our outgoing mail server for password forgetfulness
            m_Client = new SmtpClient(m_WebApp.SmtpHost, m_WebApp.SmtpPort);
            if (m_WebApp.SmtpPort == 25)
            {
                m_Client.EnableSsl = false;
            }
            else
            {
                m_Client.EnableSsl = true;
            }
            m_Client.Credentials    = new NetworkCredential(m_WebApp.SmtpUsername, m_WebApp.SmtpPassword);
            m_Client.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);
        }
        public void DetermineResult_gets_result_when_no_result_set(PasswordAuthenticationService <StubAuthenticationRequest> sut,
                                                                   StubAuthenticationRequest request)
        {
            // Arrange
            request.Result = null;

            // Act
            sut.DetermineResult(ref request);

            // Assert
            Assert.NotNull(request.Result);
        }
        public void PerformVerification_gets_false_result_when_no_verifier_present(PasswordAuthenticationService <StubAuthenticationRequest> sut,
                                                                                   StubAuthenticationRequest request)
        {
            // Arrange
            request.Verifier = null;

            // Act
            sut.PerformVerification(ref request);

            // Assert
            Assert.IsFalse(request.PasswordVerified, "Password verified");
        }
        public void DetermineResult_creates_success_result_when_password_is_verified(PasswordAuthenticationService <StubAuthenticationRequest> sut,
                                                                                     StubAuthenticationRequest request)
        {
            // Arrange
            request.Result           = null;
            request.PasswordVerified = true;

            // Act
            sut.DetermineResult(ref request);

            // Assert
            Assert.IsTrue(request.Result.Success);
        }
        public void DetermineResult_does_not_change_result_when_already_set(PasswordAuthenticationService <StubAuthenticationRequest> sut,
                                                                            StubAuthenticationRequest request,
                                                                            AuthenticationResult result)
        {
            // Arrange
            request.Result = result;

            // Act
            sut.DetermineResult(ref request);

            // Assert
            Assert.AreSame(result, request.Result);
        }
        public void CreateRequest_uses_request_factory([Frozen] IRequestFactory <StubAuthenticationRequest> requestFactory,
                                                       PasswordAuthenticationService <StubAuthenticationRequest> sut,
                                                       StubAuthenticationRequest request)
        {
            // Arrange
            Mock.Get(requestFactory)
            .Setup(x => x.CreateRequest(request.EnteredCredentials))
            .Returns(request);

            // Act
            var result = sut.CreateRequest(request.EnteredCredentials);

            // Assert
            Assert.AreSame(request, result, "Correct instance returned");
            Mock.Get(requestFactory).Verify(x => x.CreateRequest(request.EnteredCredentials), Times.Once());
        }
        public void PerformVerification_gets_false_result_when_verification_fails(PasswordAuthenticationService <StubAuthenticationRequest> sut,
                                                                                  StubAuthenticationRequest request)
        {
            // Arrange
            Mock.Get(request.Verifier)
            .Setup(x => x.Verify(request.EnteredCredentials, request.CredentialsObject))
            .Returns(false);

            // Act
            sut.PerformVerification(ref request);

            // Assert
            Mock.Get(request.Verifier)
            .Verify(x => x.Verify(request.EnteredCredentials, request.CredentialsObject), Times.Once());
            Assert.IsFalse(request.PasswordVerified, "Password not verified");
        }
        public Services(IConfigSource config, string configName, WebApp webApp)
        {
            m_log.Debug("[Wifi]: Services Starting...");

            m_WebApp = webApp;

            m_ServerAdminPassword = webApp.RemoteAdminPassword;
            //m_log.DebugFormat("[Services]: RemoteAdminPassword is {0}", m_ServerAdminPassword);
            m_LastStatisticsUpdate = new DateTime();

            // Create the necessary services
            m_UserAccountService    = new UserAccountService(config);
            m_AuthenticationService = new PasswordAuthenticationService(config);
            m_InventoryService      = new InventoryService(config);
            m_AssetService          = new AssetService(config);
            m_GridService           = new GridService(config);
            m_GridUserService       = new GridUserService(config);
            m_AvatarService         = new AvatarService(config);
            m_PresenceService       = new PresenceService(config);
            m_GroupsService         = new GroupsService(config);

            // Create the "God" account if it doesn't exist
            CreateGod();

            if (m_WebApp.BypassCertificateVerification)
            {
                ServicePointManager.ServerCertificateValidationCallback =
                    delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
                { return(true); }
            }
            ;

            // Connect to our outgoing mail server for password forgetfulness
            m_Client = new SmtpClient(m_WebApp.SmtpHost, m_WebApp.SmtpPort);
            if (m_WebApp.SmtpPort == 25)
            {
                m_Client.EnableSsl = false;
            }
            else
            {
                m_Client.EnableSsl = true;
            }
            m_Client.Credentials    = new NetworkCredential(m_WebApp.SmtpUsername, m_WebApp.SmtpPassword);
            m_Client.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);
        }
        public void RetrieveVerifier_uses_factory([Frozen] IPasswordVerifierFactory factory,
                                                  PasswordAuthenticationService <StubAuthenticationRequest> sut,
                                                  StubAuthenticationRequest request,
                                                  IPasswordVerifier verifier)
        {
            // Arrange
            Mock.Get(factory)
            .Setup(x => x.GetVerifier(request.CredentialsObject))
            .Returns(verifier);

            // Act
            sut.RetrieveVerifier(ref request);

            // Assert
            Assert.AreSame(verifier, request.Verifier, "Verifier is set");
            Mock.Get(factory)
            .Verify(x => x.GetVerifier(request.CredentialsObject), Times.Once());
        }
        IPasswordAuthenticationService GetAuthenticationService(IStoredCredentialsRepository repo)
        {
            var output = new PasswordAuthenticationService <AuthenticationRequest>(repo);

            if (useSuccessListener)
            {
                output.SuccessfulAuthentication += (sender, e) => {
                    listenerTriggered = true;
                };
            }
            else if (useFailureListener)
            {
                output.FailedAuthentication += (sender, e) => {
                    listenerTriggered = true;
                };
            }

            return(output);
        }
        public void RetrieveStoredCredentials_uses_repository([Frozen] IStoredCredentialsRepository repository,
                                                              PasswordAuthenticationService <StubAuthenticationRequest> sut,
                                                              StubAuthenticationRequest request,
                                                              StubStoredCredentials stored)
        {
            // Arrange
            Mock.Get(repository)
            .Setup(x => x.GetStoredCredentials(request.EnteredCredentials))
            .Returns(stored);

            request.EnteredCredentials = request.EnteredCredentials;

            // Act
            sut.RetrieveStoredCredentials(ref request);

            // Assert
            Assert.AreSame(stored, request.StoredCredentials, "Stored credentials are set");
            Mock.Get(repository)
            .Verify(x => x.GetStoredCredentials(request.EnteredCredentials), Times.Once());
        }
        public void RetrieveStoredCredentials_sets_result_when_credentials_are_not_found([Frozen] IStoredCredentialsRepository repository,
                                                                                         PasswordAuthenticationService <StubAuthenticationRequest> sut,
                                                                                         StubAuthenticationRequest request)
        {
            // Arrange
            Mock.Get(repository)
            .Setup(x => x.GetStoredCredentials(request.EnteredCredentials))
            .Returns((StubStoredCredentials)null);

            request.EnteredCredentials = request.EnteredCredentials;
            request.Result             = null;

            // Act
            sut.RetrieveStoredCredentials(ref request);

            // Assert
            Assert.IsNull(request.StoredCredentials, "Stored credentials are null");
            Assert.NotNull(request.Result, "Result is set");
            Assert.IsFalse(request.Result.CredentialsFound, "Credentials not found");
        }
        public void RetrieveVerifier_sets_failure_result_when_verifier_cannot_be_created([Frozen] IPasswordVerifierFactory factory,
                                                                                         PasswordAuthenticationService <StubAuthenticationRequest> sut,
                                                                                         StubAuthenticationRequest request)
        {
            // Arrange
            Mock.Get(factory)
            .Setup(x => x.GetVerifier(request.CredentialsObject))
            .Returns((IPasswordVerifier)null);

            request.Result = null;

            // Act
            sut.RetrieveVerifier(ref request);

            // Assert
            Mock.Get(factory)
            .Verify(x => x.GetVerifier(request.CredentialsObject), Times.Once());
            Assert.NotNull(request.Result, "Result has been set");
            Assert.IsFalse(request.Result.Success, "Result indicates failure");
        }
        public void RetrieveVerifier_does_not_use_factory_when_credentials_object_is_empty([Frozen] IPasswordVerifierFactory factory,
                                                                                           PasswordAuthenticationService <StubAuthenticationRequest> sut,
                                                                                           StubAuthenticationRequest request)
        {
            // Arrange
            Mock.Get(factory)
            .Setup(x => x.GetVerifier(It.IsAny <object>()))
            .Returns((IPasswordVerifier)null);

            request.CredentialsObject = null;

            // Act
            sut.RetrieveVerifier(ref request);

            // Assert
            Mock.Get(factory)
            .Verify(x => x.GetVerifier(It.IsAny <object>()), Times.Never());
        }