当前位置: 首页 > 知识库问答 >
问题:

允许所有用户冒充任何用户

公良运锋
2023-03-14

我有一个要求,我必须允许我所有的普通用户模仿他们选择的用户。

我一直没能做到这一点。这就是我到目前为止所做的:

>

  • 将以下属性添加到portal-ext.properties:

    portal.jaas.enable=false
    portal.impersonation.enable=true
    

    为了模仿的目的创造了一个角色

    我不需要我的用户看到他们可以模拟的用户列表,我只是想在中模拟一个用户?doAsUserId=x存在于url中(如果您是管理员,则不起作用)。

    当我尝试使用用户A模拟用户B时,什么都没有发生。我在tomcat日志中发现了这个错误:

    1ERROR [http-bio-8180-exec-85][PortalImpl:5990] User 80413 does not have the permission to impersonate 25105
    

    (用户80413是我的用户A,即试图模拟用户B的用户[25105])

    我还漏了什么吗?

  • 共有1个答案

    穆智刚
    2023-03-14

    有一个条件,在利弗里,检查的组织名单上的冒充权限。因此,模仿其他用户的用户必须在这些用户所属的所有组织中拥有“模仿”的许可。

    if (doAsUser.isDefaultUser() ||
            UserPermissionUtil.contains(
                permissionChecker, doAsUserId, organizationIds,
                ActionKeys.IMPERSONATE)) {
    
            request.setAttribute(WebKeys.USER_ID, new Long(doAsUserId));
    
            return doAsUserId;
        }
    

    因此,这两个用户必须是同一组织的一部分,并且必须具有该组织的模拟权限。

     类似资料:
    • 根据文件,谷歌应用程序域管理员可以授予服务帐户域范围的权限,以代表域中的用户访问用户数据。我的理解是,这赋予了服务帐户访问域内所有用户数据的权限。有没有办法限制哪些用户服务帐户可以访问? 例如,一个应用程序使用Google Calendar API来查看Google Apps域中特定用户列表的日历中的事件。 Google应用程序管理员是否可以授权应用程序访问某些用户,但不是所有用户? 谢啦

    • 我的Laravel REST API使用Tymon/JWT-Auth包。在我的文件中,我可以添加用于未验证用户的路由和用于已验证用户的路由。 未经身份验证用户的路由忽略授权标头。但是,我想要一个路由组,如果标头有效,它可以利用授权用户数据,如果标头没有设置或无效,它可以做其他事情。 有没有办法实现这种功能,或者JWTAuth包内置中间件中有没有解决方案?

    • 问题内容: 我正在用Swift编写我的第一个iOS应用程序(仅iPhone)。主应用程序视图应允许用户从相册中选择图像。 我找到了以下 ViewController.swift 示例代码: 并具有以下View Controller Scene- 但是,当我启动该应用程序时,仅显示黑屏。我做错了什么?我发现的另一个示例代码是在Objective-C中,这对我没有帮助。 问题答案: 如果只想让用户使用

    • 问题内容: 我正在寻找一种允许用户使用Ajax从我的网站下载文件的方法。我之所以需要这样做是因为文件很大(正常情况下为50兆)。因此,当用户单击下载按钮时,它实际上看起来好像页面没有响应,因为它必须将文件从我的Amazon S3流传输到用户。 因此,我需要通知用户下载正在进行中,甚至可能给他们一个进度条。我找到了以下文章,但我并不热衷于将iFrame注入我的网页。 在此先感谢您的帮助。 问题答案:

    • 问题内容: 我不希望新用户能够注册。因此,在Jenkin的配置中,我使用Jenkin自己的用户数据库禁用了“允许用户注册”。 但是,现在如何手动添加用户?另外,是否有我应该照顾的默认管理员用户? 问题答案: 在“管理詹金斯”中有“创建用户”。

    • 问题内容: 我正在使用Web服务的相同电子邮件地址对用户注册进行负载测试,并且同时连接的前10个用户将始终注册。 我正在使用WATCH和MULTI,但这似乎没有任何作用。 我正在调用save()来保存用户。 输出几乎总是: 我是在做错什么,还是redis无法处理那么多的并发。这也是Common的定义: 问题答案: 是!经过一整夜的休息之后,解决方案终于在淋浴时解决了。 问题是我为整个应用程序使用了