私は:Liferay 6.0.6 with JBoss 5.1およびStruts2で作業しています。
私の質問は、Javaコードを使用して、ログイン後にLiferayで現在のユーザーを取得する方法です。
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ポータル間で移植可能である必要があります。
LiferayはUtilクラスを提供します
com.liferay.portal.util.PortalUtil
このクラスには、頻繁に使用される属性を取得するためのすべてのユーティリティメソッドが含まれています。
PortalUtil.getUser(PortletRequest portletRequest)
メソッドを使用して、新しいオブジェクトや参照が作成されないようにしてください。
これはそれを行う他の可能な方法です:
private LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
User currentUser=liferayFacesContext.getUser()