1、  用户验证方式更改:

Mongodb2.6的默认用户验证方式是:MONGODB-CR

Mongodb3.0的默认用户验证方式是:SCRAM-SHA-1

因为新的验证方式在spring和java中还有一些问题,因此现在项目中3.0的数据库依旧使用之前的验证方式。

把3.0的用户验证改为MONGODB-CR,过程如下:

(1)、进入mongoshell,mongodb的bin目录下执行mongo命令:./mongo

(2)、创建admin数据库,并创建一个用户,指定用户密码和角色:

use admin

db.createUser({“user”:”admin”,”pwd”:”admin”,”roles”:[“root”]})

(3)、更改用户验证方式:(注意必须先创建用户才能成功操作这一步)

var schema=db.system.version.findOne({“_id”:”authSchema”})

回车后再输入:

schema.currentVersion=3

回车后继续输入:

db.system.version.save(schema)

回车

(4)、删除刚刚创建的用户:

db.dropUser(“admin”)

(5)、再次创建一个新的用户:

db.createUser({“user”:”admin”,”pwd”:”admin”,”roles”:[“root”]})

2、  Spring配置用户验证:

在spring整合mongodb3.0的jar包中,旧的一些用户验证方式已经被抛弃,因此需要使用新的配置才能成功连接并使用3.0数据库。需要mongo-java-driver-3.0.2.jar和spring-mongo-data-1.7.2.jar或者更高版本的jar。

Spring中关于mongodb3.0的配置如下:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:p="http://www.springframework.org/schema/p"

xmlns:mongo="http://www.springframework.org/schema/data/mongo"

xsi:schemaLocation="http://www.springframework.org/schema/beans     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

     http://www.springframework.org/schema/data/mongo

    http://www.springframework.org/schema/data/mongo/spring-mongo.xsd">

<!-- Factory bean that creates the Mongoinstance -->

<mongo:mongo-client host="192.168.0.33" port="27017" credentials="aaa:aaa@aaa"id="mongo">

<mongo:client-options write-concern="SAFE"/>

</mongo:mongo-client>

<mongo:db-factory  id="mongoDbFactory"dbname="admin" mongo-ref="mongo"/>

<bean id="mongoTemplate"class="org.springframework.data.mongodb.core.MongoTemplate">

<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />

</bean>

</beans>

3、  纯java代码中配置用户验证:

在mongo-java-driver的新驱动中,旧的(mongodb2.6)验证方法也已经被弃用,因此也必须更换新的代码进行验证,而且需要注意的是,在3.0.2.jar中,即便是用了新的方法验证,但是如果不把mongodb中的用户验证方式改回MONGODB-CR,那么依旧验证不通过,所以还必须改回MONGODB-CR才行,至于mongodb3.0.6以后的行不行就还不知道。

新的验证方法java代码如下:

ServerAddress sa = new ServerAddress(host, port);

List<MongoCredential> mongoCredentialList = new ArrayList<MongoCredential>();

mongoCredentialList.add(MongoCredential.createMongoCRCredential(username, database, password.toCharArray()));

new MongoClient(sa, mongoCredentialList);

示例:

public DB getMongoDB() {

if (mongoDB == null) {

try {

ServerAddress sa = new ServerAddress("192.168.0.160",47017);

List<MongoCredential>mongoCredentialList = new ArrayList<MongoCredential>();  mongoCredentialList.add(MongoCredential.createMongoCRCredential("aaa","aaa","aaa".toCharArray()));

mongoDB = new MongoClient(sa,mongoCredentialList).getDB("admin");

} catch (Exception e) {

throw new RuntimeException("连接MongoDB数据库错误",e);

}

}

return mongoDB;

}

mongdb3.0用户验证问题的更多相关文章

  1. OAuth2.0 用户验证授权标准 理解

    OAuth2.0是一套标准. 一.问题 这个标准解决了这样的一个问题. 允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用.  ...

  2. spring4.0整合mongodb3.0.4项目实践(用户验证)

    我们的项目用到了spring框架和mongdb数据库,随着mongodb升级到3.0已有半年时间,我们也开始随之升级,但是3.0的用户验证有所更改,导致原来的很多配置无法再用. 经过几天的尝试后,终于 ...

  3. 使用mongo-java-driver3.0.2.jar和mongodb3.0在java代码中的用户验证4

    以下是使用mongo-java-driver3.0.2.jar和mongodb3.0.4在java代码中的用户验证: ServerAddress sa = new ServerAddress(host ...

  4. mongodb3.0分片及java代码连接操作测试(开启用户验证)

    最近抽时间搭建了一下mongodb简单的分片,整个过程还算是蛮顺利,只不过在用户验证这一块遇到了一些问题,好在最后终于搞定. 一.服务器搭建过程: 1.安装四个mongodb:一个作为config.一 ...

  5. ASP.NET MVC5+EF6+EasyUI 后台管理系统(65)-MVC WebApi 用户验证 (1)

    系列目录 前言: WebAPI主要开放数据给手机APP,其他需要得知数据的系统,或者软件应用,所以移动端与系统的数据源往往是相通的. Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能, ...

  6. SQLSERVER误删除了Windows登录用户验证方式使用Windows身份验证的解决方法

    SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法 今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办? 想起来之前着急哥问我的一个问 ...

  7. 来玩Play框架06 用户验证

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 用户验证(User Authentification)复合的使用Play框架的数个 ...

  8. MVC WebApi 用户验证 (2)

    构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(66)-MVC WebApi 用户验证 (2)   前言: 构建ASP.NET MVC5+EF6+E ...

  9. php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证及缺点

    在php中,可以使用Header函数做一些有趣的事情,用户验证就是其中一个很有意思的功能.具体用法: Header("WWW-Authenticate: Basic realm=" ...

随机推荐

  1. 六个超大规模Hadoop(前景)

    http://cloud.zol.com.cn/441/4415033_all.html 希望自己可以尽快把Hadoop学好

  2. POJ 1502 MPI Maelstrom

    MPI Maelstrom Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 20000/10000K (Java/Other) Total ...

  3. ZOJ 1068 P,MTHBGWB

    原题链接 题目大意:给定一个字符串,先用Morse Code编码,把编码倒序,再解码成字符串.现给定处理后的字符串,求原始信息. 解法:用C++String类的函数.每次读入一个字符,就在string ...

  4. 1-3-2 Windows应用程序常用消息

    主要内容:介绍Windows编程中常用的消息 1.WM_LBUTTONDOWN产生单击鼠标左键的消息 lParam: 低字节包含当前光标的X坐标值 X = LOWORD(lParam); 高字节包含当 ...

  5. svn 安装 、使用(1)

    写在开头: 虽然网络极大的方便了我们查找答案,而且有很多人写各样的博客.但每个人在实际中的情况不一样,遇到的问题也不一样,大牛们会把步骤写的很简单,可能真的是怕麻烦,但显然就有一些东西已经不适合一部分 ...

  6. Make和Makefile编写(详见GCC手册)

    Makefile和Make Rules 多模块软件.依赖树和Make 默认规则 Make使用程序对简单变量的支持 内建变量 虚目标 特殊目标 一般性语法错误及其纠正措施 命令行的使用和调试 Makef ...

  7. Java——匿名内部类

     /* * 匿名内部类,  就是内部类的简写形式. * *  必须有前提: *  内部类必须继承或者实现一个外部类或者接口. * 匿名内部类其实就是一个子类对象. * * 格式:new 父类or接 ...

  8. 配置Apache将自己的电脑做服务器使局域网内的电脑访问自己的主机

    很多的朋友都想把自己的电脑打造为服务器使别人能够访问.比如说你自己写了一网站,只能自己通过localhost访问或127.0.0.1访问.但是怎么让别人的电脑也能访问呢?来看看自己写的网站.现在我来讲 ...

  9. weblogic管理2 - 创建并启动一个managed server

    创建一个managed server. 1.  进入网页console管理页面,如:http://10.100.25.14:7001/console     , 先点击->服务器 (红色标记框) ...

  10. Maximum number of WAL files in the pg_xlog directory (1)

      Guillaume Lelarge: Hi, As part of our monitoring work for our customers, we stumbled upon an issue ...