Liferay 模块侦听器:无法获得谁对模型进行了更改
Liferay module listener : Unable to get who made a change to the model
我必须为用户模型创建自定义审核以跟踪删除用户的人。我试图为用户模型创建一个 Liferay 模块侦听器,但我无法获得删除用户的详细信息。
有什么方法可以详细了解谁对 Liferay 模块侦听器中的用户模型进行了更改?
我的 Liferay 环境详细信息
- Liferay 门户:liferay-ce-portal-tomcat-7.0-ga5
- 数据库:postgres (PostgreSQL) 9.5.17
- IDE : 蚀氧 4.7.3a
/*
* Below is the sample code that I have tried to create the Liferay module listener for the User model
*/
package com.test.useraudit.modellistner;
import org.osgi.service.component.annotations.Component;
import com.liferay.portal.kernel.exception.ModelListenerException;
import com.liferay.portal.kernel.model.BaseModelListener;
import com.liferay.portal.kernel.model.ModelListener;
import com.liferay.portal.kernel.model.User;
@Component(
immediate = true,
service = ModelListener.class
)
public class CustomUserModelListner extends BaseModelListener<User>{
@Override
public void onBeforeRemove(User user) throws ModelListenerException{
System.out.println("In onBeforeRemove method");
System.out.println("User detail :");
System.out.println(user);
super.onBeforeRemove(user);
}
@Override
public void onAfterRemove(User user) throws ModelListenerException{
System.out.println("In onAfterRemove method");
System.out.println("User detail :");
System.out.println(user);
super.onAfterRemove(user);
}
}
是的,这是可能的。
有一个名为 ServiceContext
的隐式线程局部变量,其中包含调用上下文的详细信息。
样本:
@Override
public void onBeforeRemove(User user) throws ModelListenerException{
ServiceContext serviceContext =
ServiceContextThreadLocal.getServiceContext();
System.out.println("Calling user:" + serviceContext.getUserId());
}
是的,这是可能的,Liferay 中包含了 OOTB。删除事件已经是它的踪迹。您可以看到审核事件和系统事件 table.
您可以使用审计事件框架进行自定义。
我必须为用户模型创建自定义审核以跟踪删除用户的人。我试图为用户模型创建一个 Liferay 模块侦听器,但我无法获得删除用户的详细信息。
有什么方法可以详细了解谁对 Liferay 模块侦听器中的用户模型进行了更改?
我的 Liferay 环境详细信息
- Liferay 门户:liferay-ce-portal-tomcat-7.0-ga5
- 数据库:postgres (PostgreSQL) 9.5.17
- IDE : 蚀氧 4.7.3a
/*
* Below is the sample code that I have tried to create the Liferay module listener for the User model
*/
package com.test.useraudit.modellistner;
import org.osgi.service.component.annotations.Component;
import com.liferay.portal.kernel.exception.ModelListenerException;
import com.liferay.portal.kernel.model.BaseModelListener;
import com.liferay.portal.kernel.model.ModelListener;
import com.liferay.portal.kernel.model.User;
@Component(
immediate = true,
service = ModelListener.class
)
public class CustomUserModelListner extends BaseModelListener<User>{
@Override
public void onBeforeRemove(User user) throws ModelListenerException{
System.out.println("In onBeforeRemove method");
System.out.println("User detail :");
System.out.println(user);
super.onBeforeRemove(user);
}
@Override
public void onAfterRemove(User user) throws ModelListenerException{
System.out.println("In onAfterRemove method");
System.out.println("User detail :");
System.out.println(user);
super.onAfterRemove(user);
}
}
是的,这是可能的。
有一个名为 ServiceContext
的隐式线程局部变量,其中包含调用上下文的详细信息。
样本:
@Override
public void onBeforeRemove(User user) throws ModelListenerException{
ServiceContext serviceContext =
ServiceContextThreadLocal.getServiceContext();
System.out.println("Calling user:" + serviceContext.getUserId());
}
是的,这是可能的,Liferay 中包含了 OOTB。删除事件已经是它的踪迹。您可以看到审核事件和系统事件 table.
您可以使用审计事件框架进行自定义。