0

我们需要针对现有的外部数据库对部署在 WSO2 应用程序服务器中的 Web 应用程序的用户进行身份验证。我们正在尝试为此使用 WSO2 身份服务器。

我们包含用户的数据库表有两列使用户名唯一,clientid 和 usercode。即 usercode 本身不是唯一的,但 clientid+usercode 是唯一的。我们的密码也用 PBKDF2 加盐。因此,我扩展了 JDBCUserStoreManager 以与我们的数据库通信,并且能够在 PBKDF2 中存储和检索密码。

但我不知道如何从登录页面获取客户端 ID 到我们扩展的 JDBCUserStoreManager。即如何从我们的自定义 JDBCUserStoreManager 内部访问存储在用户会话中的 clientid?如果我可以从那里的会话中获取 clientid,我可以在 sql 查询中使用它来做必要的事情。

任何帮助解决这个问题都非常感谢..

4

1 回答 1

1

您可以在登录页面输入“clientid+usercode”组合作为用户名。然后身份验证器将该组合作为用户名传递给自定义用户存储管理器的 doAuthenticate() 方法。在那里,您可以从用户名中拆分客户端 ID 和用户代码。

于 2013-02-12T03:33:00.063 回答