使用spi:default-provider添加部分在keycloak docker映像中不起作用

时间:2018-10-10 06:57:31

标签: docker keycloak keycloak-services

我已经为密钥斗篷创建了自定义emailSender提供程序。

将其添加到部署中后,我已经在服务器信息中看到了两个提供程序,并且尝试发送电子邮件导致了NPE(未返回任何提供程序)。

添加该部分之后:

        <spi name="emailSender">
            <default-provider>multipart</default-provider>
        </spi>

在子系统urn:jboss:domain:keycloak-server:1.1standalone/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/似乎是进行配置的正确目录。...

1 个答案:

答案 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