2

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

我发现了这个: 如何在 Liferay 中获取当前用户? 还有这个: 使用简单的 Java 代码获取当前用户 Liferay

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

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

4

4 回答 4

3

让您的 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) {

    }
}
于 2012-05-22T07:33:41.517 回答
1

我一直在使用 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,try/catch 是必要的。

此致,

于 2012-06-24T16:31:10.883 回答
1

请求对象可用作操作或渲染方法以及 jsps 中的参数。您不需要对其进行初始化,它就在那里(参见例如 processAction(ActionRequest request, ActionResponse response) 的参数,渲染阶段、事件阶段和资源阶段也是如此(尽管与请求/响应的子类型不同) )。

于 2012-05-21T12:37:13.510 回答
0

Have you try in your Vaadin Portlet (Application) to use the methode: getUser()?

Vaadin Portlet wraped a Liferay API with Vaadin specific framework. Hence the developing of Vaadin Portlet has this own specification, and the standard Liferay API are not simple useable here.

于 2012-05-21T23:06:12.577 回答