使用Java连接到MongoDB服务器实例期间的身份validation
有可能做出类似的东西:
MongoClient mongo = new MongoClient(ip, port, usrName, password)
在JAVA中类似于MongoVUE或其他基于SQL的数据库的身份validation方法。
在连接到数据库实例期间完成身份validation。
我在MongoClient java doc中没有看到合适的实例方法
身份validation方式(可选)官方文档
不符合我的目标,因为它需要更改我的应用程序中现在不使用身份validation的所有现有查询方法。
使用Java驱动程序对MongoDB进行身份validation的方式看起来正是我所需要的,但mongo 2.10.1发行版中没有com.mongodb.MongoCredential类。
您不需要更改所有现有查询,只需要更改建立MongoClient的逻辑。 大多数应用程序将此作为某种Singleton执行此操作,因此添加身份validation只需修改Singleton。 这是一个痛苦的事实,没有一个签名只需要String,字符串作为用户名密码,但它的Mongo Java API,习惯了失望。
你可以去MongoURI路径,它可以让你获得最短的签名……
MongoClient mongo = new MongoClient( new MongoClientURI( "mongodb://app_user:bestPo55word3v3r@localhost/data" ) );
或者使用更详细的List
List seeds = new ArrayList (); seeds.add( new ServerAddress( "localhost" ); List credentials = new ArrayList (); credentials.add( MongoCredential.createMongoCRCredential( "app_user", "data", "bestPo55word3v3r".toCharArray() ) ); MongoClient mongo = new MongoClient( seeds, credentials );
根据Bob Kuhar接受的答案,在Mongo3中,机制已从质询响应更改为SHA1,如代码段所示。 我需要更新代码段,如下所示:
... import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.ServerAddress; ... // Manage the mongo db connection... List seeds = new ArrayList (); seeds.add( new ServerAddress(configuration.getMongoHost(), configuration.getMongoPort() )); List credentials = new ArrayList (); credentials.add( MongoCredential.createScramSha1Credential( configuration.getMongoUser(), configuration.getMongoDb(), configuration.getMongoPassword().toCharArray() ) ); MongoClient mongo = new MongoClient( seeds, credentials );
- Spring安全切换到Ldap身份validation和数据库权限
- Spring Security将URL参数传递给Authentication Provider
- 我应该同时使用SocialAuthenticationFilter和ProviderSignInController吗?
- 使用Spring Security在运行时切换身份validation方法?
- 将jhipster后端和前端分成两个项目?
- Struts 2 – 在身份validation拦截器之后重定向到正确的操作
- 如何在Dropwizard中进行资源的基本身份validation
- 如何正确地向服务器validationAngularJS客户端
- 如何在GWT中实现登录屏幕?