Authentication liferay页面中的身份验证
我们在liferay页面上有一个portlet。我们希望对执行的每个操作方法设置权限。例如,在A页上,我们得到了一个XYZ portlet。现在,我们希望无论何时从这个portlet执行任何操作,我们都要检查用户是否有角色来执行这个操作 这不是一个很好的方法,因为我们有大约20个这样的页面和portlet 我们是否可以使用某种过滤器,以便检查每个操作请求是否用户有权访问内容Authentication liferay页面中的身份验证,authentication,liferay,liferay-6,Authentication,Liferay,Liferay 6,我们在liferay页面上有一个portlet。我们希望对执行的每个操作方法设置权限。例如,在A页上,我们得到了一个XYZ portlet。现在,我们希望无论何时从这个portlet执行任何操作,我们都要检查用户是否有角色来执行这个操作 这不是一个很好的方法,因为我们有大约20个这样的页面和portlet 我们是否可以使用某种过滤器,以便检查每个操作请求是否用户有权访问内容 谢谢…您可以滥用一些现有的portlet权限,如“添加到页面”,并将其设置为应该调用操作的角色。 并在渲染和操作阶段验证“
谢谢…您可以滥用一些现有的portlet权限,如“添加到页面”,并将其设置为应该调用操作的角色。 并在渲染和操作阶段验证“具有用户必要的权限”
或者,您可以创建新权限,并通过portlet配置对其进行配置。这种方法更简洁,但难度更大。您可以滥用一些现有的portlet权限,如“添加到页面”,并将其设置为应该调用操作的角色。 并在渲染和操作阶段验证“具有用户必要的权限”
或者,您可以创建新权限,并通过portlet配置对其进行配置。这种方法更简洁,但难度更大。您可以滥用一些现有的portlet权限,如“添加到页面”,并将其设置为应该调用操作的角色。 并在渲染和操作阶段验证“具有用户必要的权限”
或者,您可以创建新权限,并通过portlet配置对其进行配置。这种方法更简洁,但难度更大。您可以滥用一些现有的portlet权限,如“添加到页面”,并将其设置为应该调用操作的角色。 并在渲染和操作阶段验证“具有用户必要的权限” 或者,您可以创建新权限,并通过portlet配置对其进行配置。这条路比较干净,但有难度。我的想法 使用筛选器拦截所有请求 您可以向Liferay Servlet添加一个过滤器来检查每个请求。 为此,您可以使用
挂钩插件
看看这个:
private User _getUser(HttpServletRequest request) throws Exception {
HttpSession session = request.getSession();
User user = PortalUtil.getUser(request);
if (user != null) {
return user;
}
String userIdString = (String) session.getAttribute("j_username");
String password = (String) session.getAttribute("j_password");
if ((userIdString != null) && (password != null)) {
long userId = GetterUtil.getLong(userIdString);
user = UserLocalServiceUtil.getUser(userId);
}
return user;
}
筛选请求
要筛选请求,您必须获得:
- 页面id(Liferay中的布局id)
- portlet id
- portlet生命周期
主题的显示
。使用主题显示
,这些参数很容易获取(使用真实对象实例)
因此,您必须在请求中获取该参数
final String portletId = ParamUtil.get((HttpServletRequest) servletRequest, "p_p_id", "");
final String layoutId = ParamUtil.get((HttpServletRequest) servletRequest, "plid", "");
final String portletLifecycle = ParamUtil.get((HttpServletRequest) servletRequest, "p_p_lifecycle", "");
生命周期详细信息:
portletLifecycle
是一个int
,值的含义是:
- 0:
渲染
- 1:
(您感兴趣的操作)操作
- 2:
资源
挂钩插件
看看这个:
private User _getUser(HttpServletRequest request) throws Exception {
HttpSession session = request.getSession();
User user = PortalUtil.getUser(request);
if (user != null) {
return user;
}
String userIdString = (String) session.getAttribute("j_username");
String password = (String) session.getAttribute("j_password");
if ((userIdString != null) && (password != null)) {
long userId = GetterUtil.getLong(userIdString);
user = UserLocalServiceUtil.getUser(userId);
}
return user;
}
筛选请求
要筛选请求,您必须获得:
- 页面id(Liferay中的布局id)
- portlet id
- portlet生命周期
主题的显示
。使用主题显示
,这些参数很容易获取(使用真实对象实例)
因此,您必须在请求中获取该参数
final String portletId = ParamUtil.get((HttpServletRequest) servletRequest, "p_p_id", "");
final String layoutId = ParamUtil.get((HttpServletRequest) servletRequest, "plid", "");
final String portletLifecycle = ParamUtil.get((HttpServletRequest) servletRequest, "p_p_lifecycle", "");
生命周期详细信息:
portletLifecycle
是一个int
,值的含义是:
- 0:
渲染
- 1:
(您感兴趣的操作)操作
- 2:
资源
挂钩插件
看看这个:
private User _getUser(HttpServletRequest request) throws Exception {
HttpSession session = request.getSession();
User user = PortalUtil.getUser(request);
if (user != null) {
return user;
}
String userIdString = (String) session.getAttribute("j_username");
String password = (String) session.getAttribute("j_password");
if ((userIdString != null) && (password != null)) {
long userId = GetterUtil.getLong(userIdString);
user = UserLocalServiceUtil.getUser(userId);
}
return user;
}
筛选请求
要筛选请求,您必须获得:
- 页面id(Liferay中的布局id)
- portlet id
- portlet生命周期
主题的显示
。使用主题显示
,这些参数很容易获取(使用真实对象实例)
因此,您必须在请求中获取该参数
final String portletId = ParamUtil.get((HttpServletRequest) servletRequest, "p_p_id", "");
final String layoutId = ParamUtil.get((HttpServletRequest) servletRequest, "plid", "");
final String portletLifecycle = ParamUtil.get((HttpServletRequest) servletRequest, "p_p_lifecycle", "");
生命周期详细信息:
portletLifecycle
是一个int
,值的含义是:
- 0:
渲染
- 1:
(您感兴趣的操作)操作
- 2:
资源