Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java KeyClope-6.0.1自定义验证器SPI_Java_Authentication_Keycloak_Keycloak Services - Fatal编程技术网

Java KeyClope-6.0.1自定义验证器SPI

Java KeyClope-6.0.1自定义验证器SPI,java,authentication,keycloak,keycloak-services,Java,Authentication,Keycloak,Keycloak Services,我正试图实现一个定制的keycloack验证器SPI,用于针对外部数据源/Rest服务进行身份验证。计划是将它们迁移到KeyClope中 更新了浏览器流(复制并创建了一个新流,并将其绑定) 用户首次登录时,将显示自定义主题登录屏幕 在提交时使用自定义SPI对外部服务进行身份验证 成功后,在KeyClope数据源上创建用户 创建自定义映射器以在令牌上添加额外的用户属性 我遵循官方指南的第8.3节,这与我所需要的非常相似 另外,下面的示例()我认为说明没有将其映射到新版本 例如: 在副本中,单击“操

我正试图实现一个定制的keycloack验证器SPI,用于针对外部数据源/Rest服务进行身份验证。计划是将它们迁移到KeyClope中

更新了浏览器流(复制并创建了一个新流,并将其绑定)

用户首次登录时,将显示自定义主题登录屏幕

在提交时使用自定义SPI对外部服务进行身份验证

成功后,在KeyClope数据源上创建用户

创建自定义映射器以在令牌上添加额外的用户属性

我遵循官方指南的第8.3节,这与我所需要的非常相似

另外,下面的示例()我认为说明没有将其映射到新版本

例如: 在副本中,单击“操作”菜单项和“添加执行”。选择秘密问题

在keydove-6.0.1中,没有任何类似于“选择秘密问题”的执行。我真的不需要这个,但我至少试着设置这个流来掌握这个流是如何工作的

接下来,您必须注册您创建的所需操作。单击AuthenticationOn菜单中的RequiredActions选项卡。单击注册按钮并选择新的所需操作

在所需操作上没有这样的注册按钮

我做过的事情。 创造新境界 注册用户界面客户端 在KeyClope表的新领域中创建了新用户。 登录时的UI重定向到KeyClope UI,并成功通过身份验证,并且能够使用javascript适配器成功检索令牌

componentDidMount = () => {
        const keycloak = Keycloak('/keycloak.json');
        keycloak.init({onLoad: 'login-required'}).then(authenticated => {
            this.setState({ keycloak: keycloak, authenticated: authenticated })
        })
    }

....
....

if(this.state.keycloak) {
            if(this.state.authenticated) return (
                <div className="contact-body">
                 <p>Name: {this.state.name}</p>
                 <p>Email: {this.state.email}</p>
                 <p>ID: {this.state.id}</p>
               </div>
              );
      }
}
componentDidMount=()=>{
constkeydove=keydove('/keydove.json');
init({onLoad:'login required'})。然后(authenticated=>{
this.setState({keydrope:keydrope,authenticated:authenticated})
})
}
....
....
if(this.state.keydrope){
如果(this.state.authenticated)返回(
名称:{this.state.Name}

电子邮件:{this.state.Email}

ID:{this.state.ID}

); } }
希望使用KeyClope登录UI功能(如OTP)和自定义验证器SPI。在自定义验证器中,SPI获取用户名和密码等表单字段,并使用外部服务对其进行身份验证。然后在keydape数据库中创建用户

管理员能否锁定/暂时挂起KeyClope中某个域内的用户

我计划使用的另一个选项是,更新login.ftl onsubmit,将用户名/密码发布到自定义服务,并将keydape url作为查询参数传递。
将根据自定义服务对其进行验证,在keydape数据库上创建用户,并重定向到keydape url,该url通过查询参数传递。这似乎不是正确的方法


任何帮助/想法都将非常有用。

这是您实施的错误SPI。 对于外部数据源或服务集成,您必须实现自定义的用户存储SPI

您应该使用“用户存储SPI”。这将是第11条


如果您需要额外/自定义身份验证,如机密问题,则需要第8节。

嘿,Anthony,您解决了吗?你能分享你的代码吗?我也有同样的问题!