spring xml配置mongodb遠端使用者名密碼認證
來源:互聯網
上載者:User
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即為認證資訊,格式為"使用者名稱:密碼@資料庫名"
親測有效