我可以使用shell命令在mongodb上进行身份验证:
#mongo -u user -p pwd --authenticationDatabase admin
MongoDB shell version v3.4.1
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.1
> use admin
switched to db admin
> show users
{
"_id" : "admin.ladmin",
"user" : "ladmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
{
"_id" : "admin.living",
"user" : "user",
"db" : "admin",
"roles" : [
{
"role" : "readWrite",
"db" : "lvdb"
}
]
}
List<ServerAddress> seeds = new ArrayList<ServerAddress>();
seeds.add(new ServerAddress(this.configurationResources.getMongodbServer(), this.configurationResources.getMongodbPort()));
List<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(
MongoCredential.createScramSha1Credential(
this.configurationResources.getMongodbUsername(),
this.configurationResources.getMongodbAuthenticationDatabase(),
this.configurationResources.getMongodbPassword().toCharArray()
)
);
this.mongoClient = new MongoClient(seeds, credentials);
目前,我正在从事一个项目,我想使用Hibernate OGM。我已设置persistence.xml
文件:
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="mongo" transaction-type="JTA">
<provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
<class>com.living.persistence.entities.User</class>
<properties>
<property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" />
<property name="hibernate.ogm.datastore.provider" value="org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider"/>
<property name="hibernate.ogm.datastore.database" value="lvdb"/>
<property name="hibernate.ogm.datastore.host" value="mongo"/>
<property name="hibernate.ogm.datastore.port" value="27017"/>
<property name="hibernate.ogm.datastore.username" value="user"/>
<property name="hibernate.ogm.datastore.password" value="pwd"/>
<property name="hibernate.ogm.mongodb.authentication_mechanism" value="SCRAM_SHA_1"/>
<property name="hibernate.ogm.mongodb.connection_timeout" value="5000"></property>
<property name="hibernate.ogm.datastore.document.association_storage" value="IN_ENTITY"></property>
<property name="hibernate.ogm.mongodb.association_document_storage" value="GLOBAL_COLLECTION"></property>
<property name="hibernate.ogm.mongodb.write_concern" value="MAJORITY"></property>
<property name="hibernate.ogm.mongodb.read_preference" value="PRIMARY_PREFERRED"></property>
</properties>
</persistence-unit>
</persistence>
正如您所看到的,我使用scram-sha1
作为身份验证机制。
原因:org.hibernate.service.spi.serviceException:OGM000071:无法启动数据存储提供程序,原因:org.hibernate.hibernateException:OGM001214:无法连接到MongoDB实例:等待与ReadPreferenceServerSelector{ReadPreference=Primary}匹配的服务器时,在30000 ms后超时。群集状态的客户端视图为{type=unknown,servers=[{address=mongo:27017,type=unknown,state=connecting,Exception={com.mongodb.mongosecurityexception:Exception authenticating MongoCredential{mechanism=scram-sha-1,username='user',source='lvdb',password=,mechanismProperties={}}},原因是{com.mongodb.mongocommandexception:命令失败,错误为18:“authentication failed.”在服务器mongo:27017上。完整响应为{\“OK\”:0.0,\“errmsg\”:\“authentication”AuthenticationFailed\“}}}]原因:com.mongoDB.mongoMeoutException:等待与ReadPreferenceServerSelector{readPreference=Primary}匹配的服务器时在30000 ms后超时。群集状态的客户端视图为{type=unknown,servers=[{address=mongo:27017,type=unknown,state=connecting,Exception={com.mongoDB.mongoSecurityException:Exception authenticating MongoCredential{mechanism=scram-sha-1,username='user',source='lvdb',password=,mechanismProperties={}}},原因为{com.MongoDB.MongoCommandException:命令失败,错误为18:“Authentication failed.”(服务器Mongo:27017)。完整响应为{\“OK\”:0.0,\“errMsg\”:\“Authentication failed.\”,\“Code\”:18,\“CodeName\”:\“AuthenticationFailed\”}}}]“}}
Hibernate OGM当前正在使用数据库名称作为身份验证数据库。这是一个窃听器,我正在处理。
问题内容: 我想将Spring安全性与MongoDB结合使用(使用Spring数据),并从我自己的数据库中检索用户以获取Spring安全性。但是,由于我的用户服务类型似乎不受支持,所以我不能这样做。 这是我的UserService类: 和我的SecurityConfig类: 我评论的那句话说: 如何解决它,以便可以从自己的数据库中检索用户? 问题答案: 服务层 您必须创建一个单独的实现并将其注入。
我已经使用以下命令启动了,并创建了一个用户来执行此操作(正在工作,因为如果我手动执行工作),直到我添加了这个,它才开始工作,所以也许这就是我需要的。 我错过了什么?
我正在尝试使用urllib3连接到网页。代码如下所示。 如果我们假设url是需要使用用户名和密码进行身份验证的某个网页,那么我是否使用正确的代码进行身份验证? 我使用urllib2做这件事很舒服,但使用urllib3做不到同样的事情。 非常感谢
jwt不应该仅仅用于认证用户吗?我读到过可以在里面存储非敏感的东西,比如用户ID。将权限级别之类的东西存储在令牌中可以吗?这样我可以避免数据库调用。
问题内容: 我可以通过接收到请求的xml 但不是 没有JavaScript错误,没有跨域策略问题。可能是语法错误,但是我找不到合适的教程。有什么建议吗? 问题答案: 我认为您需要纯格式:
问题内容: 如何使用node.js连接到mongodb? 我有node-mongodb-native驱动程序。 显然有0个文档。 是这样吗? 用户名和密码放在哪里? 另外,我该如何插入? 谢谢。 问题答案: 根据来源: 连接后: