可以在 Liberty 中为 MongoDB 连接配置应用程序管理的安全性或容器管理的安全性。
关于此任务
可以使用应用程序管理的安全性或容器管理的安全性来保护 MongoDB 应用程序。对于这两种安全性,必须在显式启用认证来保护 MongoDB 连接的情况下运行 MongoDB 服务器。
过程
- 为 MongoDB 配置应用程序管理的安全性。
如果 mongo 配置元素未指定用户和密码属性,那么产品会假定应用程序使用应用程序管理的安全性或者未使用安全性。应用程序必须使用 MongoDB API 进行认证,才能启用应用程序管理的安全性;例如:
<mongo id="mongo1" libraryRef="MongoLib" />
<mongoDB jndiName="mongo/testdb" mongoRef="mongo1" databaseName="db-test-1"/>
{ ...
// Java snippet
@Resource(name = "mongo/testdb")
protected DB db;
private void auth() {
if (!db.isAuthenticated())
db.authenticate("user", "password".toCharArray());
}
- 为 MongoDB 配置容器管理的安全性。
mongo 配置元素必须指定用户和密码,才能使用容器管理的安全性。每个 mongo 配置只接受一个用户。所有 MongoDB 实例都使用指定的用户和密码。例如,以下示例中引用 mongo1 的所有 MongoDB 实例都使用 mongoUserName 和 pw:
<mongo id="mongo1" libraryRef="MongoLib" user="mongoUserName" password="pw"/>
<mongoDB jndiName="mongo/testdb" mongoRef="mongo1" databaseName="db-test-1"/>
<mongoDB jndiName="mongo/testdb2" mongoRef="mongo1" databaseName="db-test-2"/>
使用容器管理的安全性的应用程序不得调用 com.mongodb.DB.authenticate(user,
pass)。
下一步做什么
确保 MongoDB 服务器处于运行状态,然后从应用程序测试 MongoDB 安全性。