[英]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.