我编写了一个自定义用户存储管理器,用于将 WSO2 连接到由 ASP.Net 的简单成员资格提供程序管理的数据库。我的主要问题是 SMP 使用 PBKDF2 进行密码散列,而标准 JDBC 用户存储似乎不支持这一点。
我基本上用了https://docs.wso2.com/display/IS530/Writing+a+Custom+User+Store+Manager作为模板,该示例实现了不同的密码哈希算法,这正是我的用例。
您可以在这里找到我的 POC 实现:github project wso2_custom_userstore我构建了一个 jar,将其放入 dropins 目录并重新启动服务器。服务器提示缺少包头,但仅此而已。添加新用户存储时,只有标准存储,仅此而已。然后,我配置了一个 JDBC 用户存储并将该类更改为我编写的类。我看到的唯一效果是我之前配置的用户存储消失了。我尝试将 .jar 放入 libs 目录中,但没有改变任何内容。
由于这似乎不起作用,并且服务器提示缺少 bundle header ,因此我构建了一个导出我的 CustomUserStoreManager 包的 OSGI bundle (也可以在 github 上找到源代码,我不允许添加超过两个 URL) - 现在 bundle 已加载并激活,但仅此而已。但我的类(class)仍然不见踪影。我在用户存储添加对话框中没有将其视为可用类,并且在日志配置中也没有将其视为可用类。在任何地方都没有任何提示,日志文件中没有,服务器的启动输出中也没有。纳达。
我做错了什么吗?
我必须补充一点,我绝不是 Java 开发人员,也根本不是开发人员。我正在为客户评估 WSO2,这应该是一个 PoC。一旦它起作用,我知道使用 PBKDF2 哈希值可能会有更有能力的人来构建一个生产版本。
提前致谢, 孙祖
最佳答案
WSO2 IS 5.3.0 基于 org.wso2.carbon.user.core 4.4.11 [1]并且您使用的是 4.2.0。在这种情况下,应更新文档。您可以找到示例代码[2]这是为 WSO2 IS 5.1.0 编写的,文章位于 [3] 。
关于java - 无法识别自定义用户存储管理器 (WSOIS 5.3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42371918/