创建WSO2自定义用户存储侦听器

时间:2019-07-17 14:56:38

标签: wso2 listener customization

未调用自定义用户商店侦听器。

遵循有关如何创建自定义用户存储侦听器的文档。

如何注册事件监听器 https://docs.wso2.com/display/IS560/Writing+a+Custom+Password+Validator

用户商店侦听器 https://docs.wso2.com/display/IS560/User+Store+Listeners

自定义侦听器的示例代码 https://svn.wso2.org/repos/wso2/people/asela/user-mgt/custom-listener/

事件监听器                                                                              org.wso2.carbon.identity.governance.store.JDBCIdentityDataStore                                    

    <!-- Enable this listener to call DeleteEventRecorders. -->
    <EventListener type="org.wso2.carbon.user.core.listener.UserOperationEventListener"
                   name="org.wso2.carbon.user.mgt.listeners.UserDeletionEventListener"
                   orderId="98" enable="false"/>
    <EventListener type="org.wso2.carbon.identity.core.handler.AbstractIdentityHandler"
                   name="org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.consent.ConsentMgtPostAuthnHandler"
                   orderId="110" enable="true"/>

                          

    <!-- Audit Loggers -->

    <!-- Old Audit Logger -->
    <EventListener type="org.wso2.carbon.user.core.listener.UserOperationEventListener"
                   name="org.wso2.carbon.user.mgt.listeners.UserMgtAuditLogger"
                   orderId="0" enable="false"/>

    <!-- New Audit Loggers-->
    <EventListener type="org.wso2.carbon.user.core.listener.UserOperationEventListener"
                   name="org.wso2.carbon.user.mgt.listeners.UserManagementAuditLogger"
                   orderId="1" enable="true"/>
    <EventListener type="org.wso2.carbon.user.core.listener.UserManagementErrorEventListener"
                   name="org.wso2.carbon.user.mgt.listeners.UserMgtFailureAuditLogger"
                   orderId="0" enable="true"/>

    <!-- OS Custom event handler-->
    <EventListener type="org.wso2.carbon.user.core.listener.UserOperationEventListener"
                   name="org.wso2.carbon.sample.user.operation.event.listener.SampleUserOperationEventListener"
                   orderId="49" enable="true"/>
</EventListeners>

这是SampleUserOperationEventListener代码。

公共类SampleUserOperationEventListener扩展了AbstractUserOperationEventListener {

//private static Log log = LogFactory.getLog(SampleUserOperationEventListener.class);

private static final Log audit = CarbonConstants.AUDIT_LOG;
private static String AUDIT_MESSAGE = "Initiator : %s | Action : %s | Target : %s ";

@Override
public int getExecutionOrderId() {

    //This listener should execute before the IdentityMgtEventListener
    //Hence the number should be < 1357 (Execution order ID of IdentityMgtEventListener)
    return 49;
}

我希望当WSO2管理控制台中发生用户活动以及用户登录服务提供商时,它将调用自定义侦听器并记录信息。

我没有发现WSO2调用此侦听器的位置。

1 个答案:

答案 0 :(得分:0)

我希望您将此自定义侦听器部署为OSGI捆绑包。如果此捆绑包成功激活,则在发出用户创建请求时应调用它。您无需将其添加到EventListners下,将其添加到dropins文件夹即可。首先检查OSGI控制台是否激活了捆绑软件。

步骤:

  1. 使用-DosgiConsole启动wso2身份服务器
  

./ wso2server.sh -DosginConsole

  1. 服务器启动后,输入以下命令。
  

ss安全性

3这将给出一个包含束的工件名称的束ID。

  

b {bundle id}

这将提供捆绑软件的状态,无论捆绑软件是否已激活。如果未激活。发生这种情况的原因很少。

    IS-5.6.0中使用的
  1. 碳核版本为4.4.32。但是在您的监听器中,您使用的是4.2.0。
  2. 检查软件包清单文件中正确的导入软件包和导出软件包详细信息

请参阅此博客及其参考以获取更多信息

https://medium.com/@inthiraj1994/user-operation-event-listener-for-wso2-server-8ce4765b8c95

如果您仍然遇到此问题,请告诉我。