[英]Get current user in Liferay using java code
如何在Java中获取当前的Liferay用户:
我发现了这一点: 如何在Liferay中获得当前用户? 这样: 使用简单的Java代码获取当前用户Liferay
但是任何人都告诉如何初始化“请求”
让您的Vaadin应用程序实现com.vaadin.terminal.gwt.server.PortletRequestListener
,然后您可以访问请求:
public class MyApp extends Application implements PortletRequestListener {
public void init() {
…
}
@Override
public void onRequestStart(PortletRequest request, PortletResponse response) {
User user = PortalUtil.getUser(request);
setUser(user);
}
@Override
public void onRequestEnd(PortletRequest request, PortletResponse response) {
}
}
request对象可用作action方法或render方法以及jsps中的参数。 您无需对其进行初始化,仅在此处进行初始化(请参见例如processAction(ActionRequest request,ActionResponse response)的参数),呈现阶段,事件阶段和资源阶段也是如此(尽管请求/响应的子类型不同) )。
我一直在使用Vaadin 6.8.0和Liferay 6.1。 这是使用Henri Kerola解决方案的一些不同代码:
@Override
public void onRequestStart(PortletRequest request, PortletResponse response) {
try {
this.setUser(request.getUserPrincipal().getName());
} catch (Exception e) {
this.setUser("anonymous");
}
}
用户属性是Vaadin标签。 尝试/捕获是必需的,因为匿名用户(来自Liferay的来宾)使用了getUserPrincipal nullPointer。
最好的祝福,
您是否在Vaadin Portlet(应用程序)中尝试过使用方法: getUser()
?
Vaadin Portlet使用Vaadin特定框架包装了Liferay API。 因此,Vaadin Portlet的开发有其自己的规范,因此标准Liferay API在这里不容易使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.