繁体   English   中英

使用Java代码在Liferay中获取当前用户

[英]Get current user in Liferay using java code

如何在Java中获取当前的Liferay用户:

我发现了这一点: 如何在Liferay中获得当前用户? 这样: 使用简单的Java代码获取当前用户Liferay

但是任何人都告诉如何初始化“请求”

即使这份文件http://www.liferay.com/documentation/liferay-portal/6.0/development/-/ai/understanding-the-two-phases-of-portlet-execution似乎也很复杂

让您的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM