我已经为密钥斗篷创建了自定义emailSender
提供程序。
将其添加到部署中后,我已经在服务器信息中看到了两个提供程序,并且尝试发送电子邮件导致了NPE(未返回任何提供程序)。
添加该部分之后:
<spi name="emailSender">
<default-provider>multipart</default-provider>
</spi>
在子系统urn:jboss:domain:keycloak-server:1.1
到standalone/configuration/standalone.xml
中重新启动服务器,我只看到一个emailSender提供程序,并且邮件是通过我的提供程序发送的。
现在我已经在docker image中重播了相同的操作:
FROM jboss/keycloak:4.5.0.Final
USER root
RUN yum -y install patch && yum clean all && rm -rf /var/cache/yum
ADD --chown=1000:1000 target/lib/* /opt/jboss/keycloak/standalone/deployments
ADD --chown=1000:1000 config /opt/jboss/config
RUN patch -R /opt/jboss/keycloak/standalone/configuration/standalone.xml < /opt/jboss/config/standalone.xml.diff
USER 1000
在那之后,我在standalone.xml
中的完全相同的地方有完全相同的spi节,但是,似乎没有任何效果。尝试发送电子邮件时,我同时看到了两个提供商并获得了NPE。
这里可能出了什么问题?我已经检查了入口点,它以独立模式启动密钥斗篷,并且我的提供程序的部署成功,因此/opt/jboss/keycloak/standalone/
似乎是进行配置的正确目录。...
答案 0 :(得分:0)
最近在4.5.0中更改了默认配置文件。应修改最终映像standalone-ha.xml
。
差异/补丁也是次佳的方法。正确的是jboss-cli
:
JBOSS_HOME/bin/jboss-cli.sh --file="/opt/jboss/cli/email-sender.cli"
email-sender.cli
:
embed-server --server-config=standalone-ha.xml --std-out=echo
/subsystem=keycloak-server/spi=emailSender:add
/subsystem=keycloak-server/spi=emailSender:write-attribute(name=default-provider, value="multipart")
stop-embedded-server