spring xml配置mongodb远程用户名密码认证

1.对mongodb服务器的配置
   mongodb默认没有开启验证功能,以下为配置步骤:
   1) 在开启验证之前,需创建一个管理员用户
       $mongo
       $db.createUser({user:"root",pwd: "root",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
       创建一个管理员用户root,密码root,管理员用户拥有userAdminAnyDatabase角色
   2) 开启mongodb验证功能
       进入mongodb配置文件进行修改,个人的地址为/etc/mongod.conf
       $sudo vim /etc/mongod.conf
       去掉"#auth = true"此行开头的#号,保存后退出
   3) 重启mongodb服务
       $sudo service mongod restart
   4) 用创建的管理员用户登录
       $mongo -u root -p root --authenticationDatabase admin
   5) 增加需要用spring进行登录的数据库的用户名、密码和权限
       $db.createUser({user:"aUser", pwd:"aPassword", roles:[{role:"dbOwner", db:"someDB"}]})
       远程登录mongodb someDB数据库的用户名为aUser,密码为aPassword,分配的权限为dbOwer
   至此mongodb本地的认证配置完成.

2.在spring的配置文件中配置用户名密码
   由于mongodb3.0+服务器改变了认证策略,因此spring xml文件需要作出相应调整,以下为xml配置代码:
    <mongo:mongo-client id="mongoClient" host="127.0.0.1" port="27017" credentials="aUser:aPassword@someDB"/>
    <mongo:db-factory id="mongoDbFactory"
                      dbname="someDB"
                      mongo-ref="mongoClient"/>
    <mongo:template id="mongoTemplate" db-factory-ref="mongoDbFactory" write-concern="NORMAL"/>

   credentials即为认证信息,格式为"用户名:密码@数据库名"

亲测有效
展开阅读全文

没有更多推荐了,返回首页