web-dev-qa-db-ja.com

単純なJavaコードを使用して、現在のユーザーLiferayを取得します

私は:Liferay 6.0.6 with JBoss 5.1およびStruts2で作業しています。

私の質問は、Javaコードを使用して、ログイン後にLiferayで現在のユーザーを取得する方法です。

13
Sabrina

DoView/processActionメソッドで、次の手順を実行します

User user = (User) request.getAttribute(WebKeys.USER);

または、ThemeDisplayオブジェクトを使用します。これには、companyId、groupId、...などの別の情報が含まれています。

ThemeDisplay td  =(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
User user = td.getUser();

クラスThemeDisplay、User nad WebKeysは、portal-service.jarの一部です。

現在のユーザーを識別するためにIDが必要な場合は、次を使用することもできます

String userId = request.getRemoteUser();

このソリューションはLiferay固有のものではなく、jsr-286ポータル間で移植可能である必要があります。

27

LiferayはUtilクラスを提供します

com.liferay.portal.util.PortalUtil

このクラスには、頻繁に使用される属性を取得するためのすべてのユーティリティメソッドが含まれています。

PortalUtil.getUser(PortletRequest portletRequest)メソッドを使用して、新しいオブジェクトや参照が作成されないようにしてください。

6
Felix Christy

これはそれを行う他の可能な方法です:

private LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
User currentUser=liferayFacesContext.getUser()
6
Charaf JRA