无法验证从 springboot 应用程序到 mongodb 的请求

问题描述 投票:0回答:1

当我尝试在 mongoDB 上建立身份验证时,我的 mongo (docker) 上的 springboot 应用程序的请求出现问题(只要我将其关闭,应用程序就会正确运行)。

Docker mongoDb 设置

  mongodb-master:
    image: mongo:6.0.3
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: USERNAME
      MONGO_INITDB_ROOT_PASSWORD: PASS
    hostname: mongodb-master

spring application.yml:

spring:
    data:
        mongodb:
            uri: mongodb://localhost:27017
            database: ${app}
            host: mongodb-master
            password: PASS
            username: USERNAME
            authentication-database: ${app}

请求后最终错误:

"message": "Command failed with error 13 (Unauthorized): 'command find requires authentication' on server localhost:27017. The full response is {\"ok\": 0.0, \"errmsg\": \"command find requires authentication\", \"code\": 13, \"codeName\": \"Unauthorized\"}"

正如我所说,当我关闭名称和密码请求时,应用程序运行没有问题。感谢您的任何建议

我尝试了一些 stackoverflow 建议,但找不到任何适合我的情况

java mongodb spring-boot
1个回答
0
投票

更新您的 Spring Boot

application.yml
以使用 Docker 服务名称
(mongodb-master)
而不是
localhost
,并且
${app}
应替换为您的实际身份验证数据库名称。

spring:
    data:
        mongodb:
            uri: mongodb://USERNAME:PASS@mongodb-master:27017/${app}?authSource=${app}
© www.soinside.com 2019 - 2024. All rights reserved.