【问题标题】:Keycloak: Use custom SPI provider for EmailTemplateProviderKeycloak:为 EmailTemplateProvider 使用自定义 SPI 提供程序
【发布时间】:2023-01-23 15:12:23
【问题描述】:

我为 Keycloak EmailTemplateProvider 接口做了自定义实现。但是,在将新实现设置为 emailTemplate 的默认提供程序之后,似乎并未考虑所有新代码。

我设法将 EmailTemplateProvider 中的方法覆盖为 setRealm、setAttribute,但无法覆盖发送电子邮件方法。例如,为发送事件没有考虑方法,似乎使用了旧的实现。

你能帮我理解一下,为什么某些方法仍然使用默认实现吗?

谢谢!

【问题讨论】:

    标签: keycloak


    【解决方案1】:

    你是如何将你的实现设置为默认实现的?我不得不写一个习惯电子邮件模板提供商停止创建模板和从 keycloak 发送电子邮件,并使用我们自己的电子邮件服务来实现这两个目的。

    我通过从 setId 方法返回 "freemarker" 作为 id 将我的实现设置为默认值电子邮件模板 ProviderFactory"default"来自EmailSenderProviderFactory.我阅读了 Keycloak 的文档,了解如何安装/启动您的自定义提供程序,但由于某种原因,这些都对我不起作用。

    另外,请确保您有一个名为服务(里面元信息文件夹)包含文件org.keycloak.email.EmailTemplateProviderFactory其中应包含从您的代码中导入自定义提供程序的位置。如果您也覆盖 keycloak 的电子邮件发件人(就像我一样),请添加一个文件EmailSenderProviderFactory.

    确保您使用了 @Override 注释。我的 pom.xml 文件包括keycloak-模型-jpa作为依赖行家 11作为带有 keycloak 版本 20.0.1 的编译器。

    看看这个 repo,默认提供者的代码写在这里:https://github.com/keycloak/keycloak/tree/main/services/src/main/java/org/keycloak/email

    【讨论】:

      猜你喜欢
      • 2019-12-04
      • 2021-04-16
      • 1970-01-01
      • 2020-09-15
      • 2020-01-08
      • 1970-01-01
      • 2021-11-01
      • 2019-12-19
      • 2020-01-31
      相关资源
      最近更新 更多