1. 程式人生 > >spring xml配置mongodb遠端使用者名稱密碼認證

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:
[email protected]
"/>
    <mongo:db-factory id="mongoDbFactory"
                      dbname="someDB"
                      mongo-ref="mongoClient"/>
    <mongo:template id="mongoTemplate" db-factory-ref="mongoDbFactory" write-concern="NORMAL"/>

   credentials即為認證資訊,格式為"使用者名稱:密碼@資料庫名"

親測有效