我正在努力寻找处理以下用例的最佳方法。
我有一个基于Wordpress的网站,我正在开发一个基于Java EE的Web应用程序来处理无法在Wordpress中处理的特定进程。
用户群是相同的,所以我想允许用户使用相同的凭据在Wordpress和我的Glassfish部署的Java EE应用程序上登录。我不是在谈论SSO,我只需要确保在两个应用程序中都使用相同的用户名/密码。
我想到的解决方案如下(每个都有缺点):
通过自定义jdbc资源使用wp_users表设置jdbcRealm。这是行不通的,因为Wordpress使用盐和恕我直言,没有办法告诉Glassfish如何使用相同的腌制机制
实现一个Glassfish身份验证器(我已经完成了FB登录并且很容易)并从纯文本计算盐渍密码。这不起作用,因为我不知道如何用Java计算WP盐渍密码
将Glassfish中的用户直接创建到wp_users表中。这是行不通的,因为最近的Wordpress版本不能使用普通的MD5,因为我找不到用Java计算WP盐渍密码的方法
使用WP XML-RPC API检查凭据。你们有些人曾试过这样做吗?这实际上是否可以使用标准WP API?
最后,最有希望的解决方案是this library,这是Portable PHP密码哈希框架的Java实现。在尝试之前,我想知道是否有人成功尝试过。
感谢任何其他想法。
谢谢。
答案 0 :(得分:0)
经过一些研究后,实际上发现用Java计算WP哈希是非常可行的,因为它们使用Portable PHP password hashing framework。有几个库在某种程度上有助于在Java中实现PHPass。
我设法稍微修改this class以使其适用于使用Authentic Roast创建的Glassfish身份验证器。
所以在我的问题中提到的第二个选项是我最终实现的那个。