簡體   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