Beispiel #1
0
        public void TestUserMethods(string username, string password, bool isReadOnly)
        {
            RequireServer.Check().VersionLessThan("3.7.0");

#pragma warning disable 618
            _database.RunCommand("dropAllUsersFromDatabase");

            _database.AddUser(new MongoUser(username, new PasswordEvidence(password), isReadOnly));

            var user = _database.FindUser(username);
            Assert.NotNull(user);
            Assert.Equal(username, user.Username);

            var users = _database.FindAllUsers();
            Assert.Equal(1, users.Length);
            Assert.Equal(username, users[0].Username);

            // test updating existing user
            _database.AddUser(new MongoUser(username, new PasswordEvidence("newpassword"), !isReadOnly));
            user = _database.FindUser(username);
            Assert.NotNull(user);
            Assert.Equal(username, user.Username);

            _database.RemoveUser(user);
            user = _database.FindUser(username);
            Assert.Null(user);
#pragma warning restore 618
        }
        public void TestUserMethods(string username, string password, bool isReadOnly)
        {
            RequireServer.Check().VersionLessThan("3.7.0");

#pragma warning disable 618
            bool usesCommands = _primary.Supports(FeatureId.UserManagementCommands);
            if (usesCommands)
            {
                _database.RunCommand("dropAllUsersFromDatabase");
            }
            else
            {
                var collection = _database.GetCollection("system.users");
                collection.RemoveAll();
            }

            _database.AddUser(new MongoUser(username, new PasswordEvidence(password), isReadOnly));

            var user = _database.FindUser(username);
            Assert.NotNull(user);
            Assert.Equal(username, user.Username);
            if (!usesCommands)
            {
                Assert.Equal(MongoUtils.Hash(string.Format("{0}:mongo:{1}", username, password)), user.PasswordHash);
                Assert.Equal(isReadOnly, user.IsReadOnly);
            }

            var users = _database.FindAllUsers();
            Assert.Equal(1, users.Length);
            Assert.Equal(username, users[0].Username);
            if (!usesCommands)
            {
                Assert.Equal(MongoUtils.Hash(string.Format("{0}:mongo:{1}", username, password)), users[0].PasswordHash);
                Assert.Equal(isReadOnly, users[0].IsReadOnly);
            }

            // test updating existing user
            _database.AddUser(new MongoUser(username, new PasswordEvidence("newpassword"), !isReadOnly));
            user = _database.FindUser(username);
            Assert.NotNull(user);
            Assert.Equal(username, user.Username);
            if (!usesCommands)
            {
                Assert.Equal(MongoUtils.Hash(string.Format("{0}:mongo:{1}", username, "newpassword")), user.PasswordHash);
                Assert.Equal(!isReadOnly, user.IsReadOnly);
            }

            _database.RemoveUser(user);
            user = _database.FindUser(username);
            Assert.Null(user);
#pragma warning restore
        }
Beispiel #3
0
        /// <summary>
        /// Add User
        /// </summary>
        /// <param name="strUser">Username</param>
        /// <param name="password">Password</param>
        /// <param name="isReadOnly">Is ReadOnly</param>
        public static void AddUserToDB(String strUser, String password, Boolean isReadOnly)
        {
            MongoDatabase mongoDB = SystemManager.GetCurrentDataBase();
            MongoUser     newUser = new MongoUser(strUser, password, false);

            if (mongoDB.FindUser(strUser) == null)
            {
                mongoDB.AddUser(newUser);
            }
        }
Beispiel #4
0
        public void InsertUser(string name, string password)
        {
            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentException(name);
            }
            if (string.IsNullOrEmpty(password))
            {
                throw new ArgumentException(password);
            }

            var mongoUser = new MongoUser(name, new PasswordEvidence(password), false);

            _database.AddUser(mongoUser);
        }
Beispiel #5
0
        public void TestUserMethods(string username, string password, bool isReadOnly)
        {
            #pragma warning disable 618
            using (_database.RequestStart(ReadPreference.Primary))
            {
                bool usesCommands = _database.Server.RequestConnection.ServerInstance.Supports(FeatureId.UserManagementCommands);
                if (usesCommands)
                {
                    _database.RunCommand("dropAllUsersFromDatabase");
                }
                else
                {
                    var collection = _database.GetCollection("system.users");
                    collection.RemoveAll();
                }

                _database.AddUser(new MongoUser(username, new PasswordEvidence(password), isReadOnly));

                var user = _database.FindUser(username);
                Assert.IsNotNull(user);
                Assert.AreEqual(username, user.Username);
                if (!usesCommands)
                {
                    Assert.AreEqual(MongoUtils.Hash(string.Format("{0}:mongo:{1}", username, password)), user.PasswordHash);
                    Assert.AreEqual(isReadOnly, user.IsReadOnly);
                }

                var users = _database.FindAllUsers();
                Assert.AreEqual(1, users.Length);
                Assert.AreEqual(username, users[0].Username);
                if (!usesCommands)
                {
                    Assert.AreEqual(MongoUtils.Hash(string.Format("{0}:mongo:{1}", username, password)), users[0].PasswordHash);
                    Assert.AreEqual(isReadOnly, users[0].IsReadOnly);
                }

                _database.RemoveUser(user);
                user = _database.FindUser(username);
                Assert.IsNull(user);
                #pragma warning restore
            }
        }
        protected void EnsureAccessRights()
        {
            var url = new MongoUrl(this.ConnectionString);
            MongoClientSettings settings = MongoClientSettings.FromUrl(url);

            settings.DefaultCredentials = null;

            MongoCredentials adminCredentials = this.GetAdminCredentials();
            var           client        = new MongoClient(settings);
            MongoServer   server        = client.GetServer();
            MongoDatabase adminDatabase = server.GetDatabase(this.MongoAdministratorDatabase);

            MongoUser user = adminDatabase.FindUser(this.MongoAdministratorName);

            if (IsUserAdmin(user))
            {
                return;
            }

            user = new MongoUser(adminCredentials, false);
            adminDatabase.AddUser(user);
            server.Disconnect();
        }
Beispiel #7
0
        public void TestUserMethods()
        {
            var collection = database["system.users"];

            collection.RemoveAll();
            database.AddUser(new MongoCredentials("username", "password"), true);
            Assert.AreEqual(1, collection.Count());

            var user = database.FindUser("username");

            Assert.AreEqual("username", user.Username);
            Assert.AreEqual(MongoUtils.Hash("username:mongo:password"), user.PasswordHash);
            Assert.AreEqual(true, user.IsReadOnly);

            var users = database.FindAllUsers();

            Assert.AreEqual(1, users.Length);
            Assert.AreEqual("username", users[0].Username);
            Assert.AreEqual(MongoUtils.Hash("username:mongo:password"), users[0].PasswordHash);
            Assert.AreEqual(true, users[0].IsReadOnly);

            database.RemoveUser(user);
            Assert.AreEqual(0, collection.Count());
        }
Beispiel #8
0
        public void TestUserMethods()
        {
            var collection = _database.GetCollection("system.users");

            collection.RemoveAll();
            _database.AddUser(new MongoUser("username", new PasswordEvidence("password"), true));
            Assert.AreEqual(1, collection.Count());

            var user = _database.FindUser("username");

            Assert.AreEqual("username", user.Username);
            Assert.AreEqual(MongoUtils.Hash("username:mongo:password"), user.PasswordHash);
            Assert.AreEqual(true, user.IsReadOnly);

            var users = _database.FindAllUsers();

            Assert.AreEqual(1, users.Length);
            Assert.AreEqual("username", users[0].Username);
            Assert.AreEqual(MongoUtils.Hash("username:mongo:password"), users[0].PasswordHash);
            Assert.AreEqual(true, users[0].IsReadOnly);

            _database.RemoveUser(user);
            Assert.AreEqual(0, collection.Count());
        }
 public void AddUser(MongoCredentials credentials)
 {
     _mongoDatabase.AddUser(credentials);
 }