我正在尝试为liferay开发一个portlet.
如何访问当前登录用户的用户名和密码(以及其他数据生命周期)?
我还希望能够在用户更改密码时执行一些代码.
Jar*_*ala 15
你可以通过调用获得用户ID getRemoteUser()的PortletRequest对象.这是由JSR-168定义的,因此它是跨门户兼容的.
获得ID后,您可以通过调用getUserById()(Liferay特定服务)获取其他信息.这是Portlet API规范未涵盖的内容,因此它将您锁定到Liferay.
Pra*_*h K 14
Liferay特定的东西,这里是一个代码示例,要写入您的Portlet类以检索用户:
ThemeDisplay themeDisplay = (ThemeDisplay)portletRequest.getAttribute(WebKeys.THEME_DISPLAY);
User user = themeDisplay.getRealUser(); // it gives you the actual Logged in User
//you can also use
// User user = themeDisplay.getUser(); // this would fetch the User you are impersonating
long userId = user.getUserId();
String userName = user.getEmailAddress();
Run Code Online (Sandbox Code Playgroud)
另外;
long userId = themeDisplay.getRealUserId(); // themeDisplay.getUserId();
User user = UserLocalServiceUtil.getUser(userId);
Run Code Online (Sandbox Code Playgroud)
冒充用户:
Liferay有一个概念,即管理员(或具有正确权限集的人)可以模拟门户的特定用户.通过这个,他们可以看到门户网站对该用户的看法.
用于在用户更改密码时执行代码: 一种方法是创建一个钩子插件并通过扩展UserLocalServiceWrapper类来覆盖服务.然后检查密码更改并在自定义类中执行代码.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
14579 次 |
| 最近记录: |