Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们如何防止Liferay管理员用户(具有管理员角色)登录公共URL_Liferay - Fatal编程技术网

我们如何防止Liferay管理员用户(具有管理员角色)登录公共URL

我们如何防止Liferay管理员用户(具有管理员角色)登录公共URL,liferay,Liferay,我们有一个公共URL-URL1和一个私有URL-URL2 我们需要一个管理员用户,他只能在专用URL2中以管理员角色登录。 如果同一用户试图从公共URL1登录,则应允许他以非管理员用户身份登录,而不使用管理员角色,即应阻止他以管理员用户身份从公共URL1登录 我们如何防止Liferay admin用户以admin角色登录公共URL,而应允许他以非admin用户身份从公共URL登录,例如在文档模板中创建登录前操作或-后操作。在其实现中,您可以访问LifecycleEvent,它封装了原始HTTP请

我们有一个公共URL-URL1和一个私有URL-URL2

我们需要一个管理员用户,他只能在专用URL2中以管理员角色登录。 如果同一用户试图从公共URL1登录,则应允许他以非管理员用户身份登录,而不使用管理员角色,即应阻止他以管理员用户身份从公共URL1登录

我们如何防止Liferay admin用户以admin角色登录公共URL,而应允许他以非admin用户身份从公共URL登录,例如在文档模板中创建登录前操作或-后操作。在其实现中,您可以访问LifecycleEvent,它封装了原始HTTP请求/响应。有了它,您就可以知道谁在登录以及他们从哪个端点连接。使用您的条件验证此操作,并发送适当的重定向

编辑:在您评论这可能是一个主要的性能问题后:

首先,我只认为这是一个主要的性能问题,当您测量它并提供数字时。 其次,使用key=servlet.service.events.pre代替链接默认组件的key login.events.pre,您可能希望尝试login.events.post。 第三,您可能无意中找到了正确的实现。请注意,web登录可能会随浏览器一起移动:会话不会绑定到特定的IP地址。一旦从特权网络登录,管理员可能很容易休眠他们的笔记本,把它带到隔壁的星巴克,然后再打开它。除非超时,否则该会话完全可以允许从星巴克Wifi进行特权访问,除非您检查每个请求。 如果您对性能非常挑剔,您可能希望找到一种非数据库机制来存储已检查访问权限的标志,例如,在会话中存储已批准的浏览器地址。哇,我想不到我会在公开场合提议在会议中储存一些东西


但总的来说:性能问题是可以衡量的。阅读代码很少会发现性能问题,或者至少不会发现值得研究的问题。

感谢您的宝贵帮助。它帮助我解决了我的问题。嗨,Olaf,使用生命周期事件解决了我的问题。但是有一个问题,因为我们已经创建了这个生命周期事件,并且在每个request@Componentimmediate=true,属性={key=servlet.service.events.pre},服务=LifecycleAction.class