Jboss 使用SPI配置KeyClope提供程序

Jboss 使用SPI配置KeyClope提供程序,jboss,config,keycloak,Jboss,Config,Keycloak,我正在尝试使用以下代码配置我的一个提供商工厂(其ID为“电话验证”): @Override public void init(Config.Scope config) { String lifespan = config.get("lifespan"); logger.warn("Lifespan : " + lifespan); } 我在standalone.xml中使用以下属性完成了配置: <spi name=&

我正在尝试使用以下代码配置我的一个提供商工厂(其ID为“电话验证”):

@Override
public void init(Config.Scope config) {
    String lifespan = config.get("lifespan");
    logger.warn("Lifespan : " + lifespan);
}
我在
standalone.xml
中使用以下属性完成了配置:

        <spi name="phoneVerification">
            <default-provider>phone-verification</default-provider>
            <provider name="phone-verification" enabled="true">
                <properties>
                    <property name="lifespan" value="2592000"/>
                </properties>
            </provider>
        </spi

电话验证

嗨,我也遇到了同样的问题,我通过用spi类型的名称替换spi标记的name属性来解决它。钥匙斗篷里面有很多SPI类型

例如,如果您的提供商正在实现验证器SPI,您应该如下配置您的提供商:

<spi name="authenticator">
   <provider name="Basic-Authenticator" enabled="true">
      <properties>
         <property name="user" value="testUser"/>
      </properties>
   </provider>
</spi>

不要忘记,在provider标记中,name属性是provider工厂类中的provider的Id

<spi name="required-action">
   <provider name="Basic-Migration" enabled="true">
      <properties>
         <property name="action" value="login"/>
      </properties>
   </provider>
</spi>
 @Override
  public void init(Scope config) {
    String username = config.get("user");
    LOG.info("This is the provider property: " + username);
  }