【问题标题】:Liferay 7 - I need to make the impersonate user URL dynamicLiferay 7 - 我需要使模拟用户 URL 动态化
【发布时间】:2019-08-09 21:47:05
【问题描述】:

我正在使用自定义登录页面挂钩项目 (https://github.com/opensourceforlife/CustomLandingPage-Hook) 将用户引导至与其关联的组织的专用站点。当实际用户登录时,钩子可以正常工作。

但我有一个要求,允许管理员模拟用户,这也可以正常工作,但只能配置为打开一个特定页面。

我需要的是根据自定义登录页面挂钩的逻辑(我可以轻松实现的逻辑)更改 URL。结果是管理员最终会出现在他们所模拟的用户的正确页面上。

我对此进行了研究,该 URL 是由 标记生成的,该标记在 com.liferay.taglib.security.DoAsURLTag.java 中实现

我相信我能够编写代码来创建正确的 URL,但是我不确定如何覆盖现有代码。我以前做过 JSP 钩子,但我从未覆盖过 taglib 类(也没有覆盖 OSGI 包中的任何类 - 只是 JSP)。我必须相信这是可能的,但我还没有找到任何指导(是的,我确实看过......)。

【问题讨论】:

    标签: liferay taglib


    【解决方案1】:

    我建议不要更改标记的实现,而是将 URL 替换为自定义生成的 URL(从头生成正确的 URL)并更改使用您找到的标记的 JSP。

    AFAIK 这是一个您可以选择模拟用户的地方,因此工作量应该相对较低。作为一个积极的副作用:更改标签实现不会自动重新编译 JSP,因此您可能仍然会得到陈旧的代码(取决于标签的实现性质,我没有看到)。

    用自定义实现替换 URL 也应该比在 taglib 上进行心脏直视手术更容易和更直接。

    【讨论】:

    • 我认为你是对的。替换标签似乎更优雅,这样更改就会在使用它的任何地方反映出来,但它似乎没有在其他任何地方使用(至少我在其他任何地方都没有找到它)。所以这就是我要做的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    • 2019-08-16
    相关资源
    最近更新 更多