当 a 不具有特定角色时,Liferay 更改默认重定向页面

标签 liferay liferay-6 liferay-theme

这基本上是两个问题?首先,我想知道当用户尝试访问具有高级用户查看权限的页面时如何更改页面 liferay 重定向。 Liferay 默认指向 localhost:web/guest/home 他们有登录页面。在我的应用程序中,我有一个不同的登录页面,我想重定向到以下页面。我正在浏览网页,发现通过设置 auth.login.site.url=/whereiwontittopoint 实际上应该将我重定向到那里。然而事实并非如此。我正在使用 Liferay 6.0.6 社区版。有人这样做过吗?这是正确的方法还是需要用钩子(Hook)来完成?

我的另一个问题如下。我想在某些页面上拥有自定义角色。我希望当用户没有该特定角色时重定向到完全不同的页面而不是默认登录。我相当确定这可以通过使用某些服务上的 Hook 来完成,但由于某种原因我无法识别该服务。

编辑 好的,对于第一个问题,我解决了问题。对于第二个问题,我在这里得到的答案不是我想要的,可能是因为我没有正确发布问题。这是我所做的和我需要做的完整场景:

首先,我将每个 liferay 页面上的/web/guest 路径更改为 web/somthing/这可能不会发挥关键作用,但问题(某些问题)在发生时就开始了。总体思路如下。我正在使用 spring mvc 来创建应用程序。我已经为我的应用程序创建了一个后端,管理员可以在其中创建页面供其他用户查看(这不是通过进入 liferay 的控制面板并添加页面来完成的,而是通过应用程序的逻辑来完成的)。一旦根据某种逻辑创建了一个页面,我就会为该特定页面创建一个角色(客户角色也通过代码而不是liferay管理员)。如果某些用户满足某些条件,则会被授予此角色,而另一些用户则不满足。这里我的问题出现了,一旦登录到我的应用程序的用户尝试访问一个页面(通过在浏览器中输入直接 URL 到该页面),该页面需要我为该页面创建的角色的查看权限,并且用户确实这样做没有适当的角色,他被重定向到 localhost/web/(username)/home 一个个人页面,并且由于某种原因,默认情况下在该页面上,liferay 他能够查看所有其他用户的个人数据(用户名)应用程序。我的问题是如何通过代码来处理上述场景中发生的重定向。 我尝试过一次尝试实际 Hook servlet.service.events.pre 操作,并在用户访问该页面之前检查他是否具有适当的权限并实际更改他的请求。到目前为止,我遇到了一些问题,但我可以解决它们,但这种方法不是我真正想要的,因为此操作是在应用程序上的每个请求之前执行的(并且页面处理只是该应用程序的一小部分)这意味着我将无缘无故地执行大量代码。我想知道是否有任何方法可以添加创建角色时异常将重定向的位置?如果不是,我应该 Hook 什么操作来帮助我解决这种情况,但又不会产生我通过 Hook servlet.service.events.pre 操作创建的不需要的额外流量?

最佳答案

对于第二件事,有点hacky的方式可能如下

1) 定义您要在portal-ext.properties 中检查的角色集。您可以添加一些属性,例如 my.super.secret.roles=rolename1,rolename2

2) 在portal-ext.properties中添加重定向页面url的属性,以便您可以在那里重定向用户。

3)为布局添加一个名为checkForSecretRoles的自定义属性,该属性必须是 bool 值并且在页面上可见。这将在每个页面的“管理”页面中显示一个复选框,以便管理员可以轻松选中或取消选中该值

4) 在主题 (portal_normal.vm) 中添加一个条件,以检查页面是否检查 secret 角色,然后检查用户角色属于 Portal-ext.properties 中定义的任何角色。如果是,则发出重定向到您的自定义重定向页面 url 属性指定的页面

关于当 a 不具有特定角色时,Liferay 更改默认重定向页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10484302/

相关文章:

java - 将自定义翻译字符串添加到 liferay 主题

seo - 我们如何将站点地图发布到 Bing

url-rewriting - Liferay 资源 URL 和操作 URL 之间的参数差异

ssl - Liferay-cas 集成

java - 在 liferay 7 中的自定义主题内创建一个 portlet

javascript - 使用 liferay-ui 进行 Javascript 文本国际化 :message

liferay - 在 liferay 中导出/导入网页内容

java - 从 Liferay 开始,对如何开始有点不知所措

java - 从 portlet 将图像上传到 liferay 主题

java - 左侧导航菜单 :Liferay 6. 2