为 WSO2 构建定制的用户存储管理器

Building a customized user store manager for WSO2

我正在尝试将 WSO2 配置为通过 LDAP 对用户进行身份验证,然后使用存储在其他地方的属性来扩充用户(探索一些遗留的集成类型场景,因此将所有内容都移动到 LDAP 确实不可能)。

用户属性文档(https://docs.wso2.com/display/IS560/Managing+User+Attributes#ManagingUserAttributes-Writingcustomattributes) indicates that this is best accomplished by writing a custom user store and https://docs.wso2.com/display/IS560/Writing+a+Custom+User+Store+Manager#WritingaCustomUserStoreManager-ImplementingacustomJDBCuserstoremanagerAbstractUserStoreManager 列为要扩展和使用的 class(尽管很可能我们会扩展 subsclass).

当我在 github 上翻阅 WSO2 IS 代码时,我 运行 遇到的问题是我似乎无法通过这个名称或方法找到 class文档中提到的名称。我的猜测是在 4.4-ish 和现在(5.6 是我作为 MSI 下载的版本)之间的某个时候,集成点发生了变化。它改变了吗?如果没有,我应该在哪里寻找要扩展的 classes?

您可以在 wso2-carbon-kernal 中查找 类。对于 IS 5.6,请尝试查看 carbon-kernel

的 4.4.x 分支

https://github.com/wso2/carbon-kernel/tree/4.4.x/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core

如果您使用 LDAP 进行身份验证,我建议您扩展 ReadOnlyLDAPUserStoreManager 并覆盖 getUserProperties 方法(或类似的东西,我现在不记得方法名称了)

Carbon-kernel v4.4.32 用于 WSO2 IS 5.6.0 [1]. You can refer the existing implementations from here [2][3] 获得一个想法。

1 https://github.com/wso2/product-is/blob/v5.6.0/pom.xml#L1810
2 https://github.com/wso2/carbon-kernel/tree/v4.4.32/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core/ldap
3 https://github.com/wso2/carbon-kernel/tree/v4.4.32/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core/jdbc