Keycloak 和 Maildev 之间的连接

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

我正在尝试在 Java Quarkus 应用程序中测试需要电子邮件操作的功能。我希望能够使用

maildev
在本地进行测试。这是我第一次处理电子邮件功能。

目前,我使用 Keycloak 开发服务 (

quarkus-oidc
),它从映像部署 Keycloak Docker 容器
quay.io/keycloak/keycloak:23.0.0

我从以下资源中获得灵感:

我试过了

Keycloak 和 Gmail 帐户

我通过使用 Gmail 帐户配置 Keycloak 电子邮件设置,成功测试了功能。然而,依赖真实的 Gmail 帐户并不适合在 CI 中测试和重放这些测试。

Keycloak 和 maildev

我尝试使用以下 docker-compose 文件。 (我可以成功连接到maildev Web UI)

version: '3.8'

services:
  maildev:
    container_name: maildev
    image: maildev/maildev
    ports:
      - '1025:1025'
      - '1080:1080'

然后,我这样配置Keycloak:

keycloak-config1

keycloak-config2

但是,当我尝试“测试连接”按钮时,它总是失败。我完全错过了什么吗?

email keycloak openid-connect quarkus
1个回答
0
投票

当设置 Keycloak 以使用本地 Maildev 实例进行电子邮件测试时,需要检查一些配置以确保它们设置正确。您似乎已经关注了一些很好的资源,但让我们确保一切都已就位:

  1. Keycloak 中的 SMTP 服务器配置:

    • 导航到 Keycloak 管理控制台。
    • 转到您要配置电子邮件的领域设置。
    • 在“领域设置”菜单下,选择“电子邮件”。
    • 确保“SMTP 服务器”设置为
      localhost
      (或 Maildev 容器的 IP 地址),“SMTP 端口”设置为
      1025
      (Maildev 的默认 SMTP 端口)。
  2. 验证领域和客户端设置:

    • 检查您是否正在为正确的领域配置电子邮件设置。有时,可能有多个领域,并且这些设置可能会应用于与您正在测试的领域不同的领域。
  3. 测试连接:

    • 点击Keycloak“电子邮件”设置中的“测试连接”按钮。
    • 确保测试连接失败不是由于网络问题或防火墙规则阻止与 Maildev 容器的连接。
  4. Maildev Docker 配置:

    • 确保您的 Maildev Docker 容器正在使用指定端口运行(SMTP 为 1025,Web 界面为 1080)。
    • 在浏览器中导航至
      http://localhost:1080
      ,确认您可以访问 Maildev Web 界面。
  5. Docker 网络:

    • 确保 Keycloak 和 Maildev Docker 容器位于同一网络上。如果您使用 Docker Compose,它们应该自动位于同一网络上。

这是考虑网络配置的 Docker Compose 文件的更新版本:

version: '3.8'

services:
  maildev:
    container_name: maildev
    image: maildev/maildev
    ports:
      - '1025:1025'
      - '1080:1080'
    networks:
      - maildev_network

  keycloak:
    image: quay.io/keycloak/keycloak:23.0.0
    environment:
      - KEYCLOAK_USER=admin
      - KEYCLOAK_PASSWORD=admin
      - PROXY_ADDRESS_FORWARDING=true
      - KEYCLOAK_HOSTNAME=http://localhost:8180/auth
    ports:
      - 8180:8080
    networks:
      - maildev_network

networks:
  maildev_network:

更改配置后,请确保重新启动 Keycloak 容器。如果您仍然遇到问题,请检查 Keycloak 和 Maildev 容器的日志中是否有任何错误消息。

此外,您可能需要验证 Keycloak 领域的客户端设置是否也已正确配置为使用本地 SMTP 服务器。

© www.soinside.com 2019 - 2024. All rights reserved.