Java MongoDB 客户端:访问未配置为使用身份验证的服务器时身份验证失败
Java MongoDB Client: authentication failed when access to a server not configured to use an authentication
我已将 Java MongoDB 客户端配置为使用 MongoCredential。
不幸的是,当我访问未配置为使用身份验证的服务器时,出现身份验证失败异常:
Caused by: com.mongodb.MongoCommandException: Command failed with error 18: 'Authentication failed.' on server …. The full response is { "ok" : 0.0, "code" : 18, "errmsg" : "Authentication failed." }
当服务器配置为使用身份验证和 Java MongoDB 客户端时,我确实希望出现此异常,但在这种情况下不会。
是否可以配置 Java MongoDB 客户端在访问未配置为使用身份验证的服务器时不会失败?
恐怕没有,您的客户端不知道服务器是否启用了身份验证。
您的客户端连接代码应与服务器的身份验证参数相匹配,否则将失败。
我在这种情况下所做的是创建一个连接函数,它接受 auth 凭据,当传递凭据时,使用它们 - 创建带有 auth 凭据的连接,否则不 - 创建没有 auth 凭据的连接。
在这种情况下,您应该知道哪些服务器启用了身份验证
我已将 Java MongoDB 客户端配置为使用 MongoCredential。 不幸的是,当我访问未配置为使用身份验证的服务器时,出现身份验证失败异常:
Caused by: com.mongodb.MongoCommandException: Command failed with error 18: 'Authentication failed.' on server …. The full response is { "ok" : 0.0, "code" : 18, "errmsg" : "Authentication failed." }
当服务器配置为使用身份验证和 Java MongoDB 客户端时,我确实希望出现此异常,但在这种情况下不会。
是否可以配置 Java MongoDB 客户端在访问未配置为使用身份验证的服务器时不会失败?
恐怕没有,您的客户端不知道服务器是否启用了身份验证。
您的客户端连接代码应与服务器的身份验证参数相匹配,否则将失败。
我在这种情况下所做的是创建一个连接函数,它接受 auth 凭据,当传递凭据时,使用它们 - 创建带有 auth 凭据的连接,否则不 - 创建没有 auth 凭据的连接。
在这种情况下,您应该知道哪些服务器启用了身份验证