【问题标题】:How to implement an impersonation feature?如何实现模拟功能?
【发布时间】:2018-07-19 12:48:16
【问题描述】:

如果您使用过 Gitlab - 它具有模拟功能,如果您的用户具有“所有者”角色,则可以通过单击按钮“模拟”系统上创建的任何用户并查看他们看到的内容。

我想了解如何实现这样的功能?它的软件设计/架构是什么。

我计划使用服务器端会话在 Java、Spring 和 Tomcat 中设计和实现此功能,并且更愿意推出我自己的模拟功能而不是使用库

【问题讨论】:

    标签: java spring tomcat impersonation


    【解决方案1】:

    如果您想要 GitLab 在 Ruby 中实现的特定解决方案,您可以查看引入该功能的提交:Commit 3bb626f9 - refactor login as to be impersonation with better login/logout

    请注意,此提交中引入的安全问题稍后已修复:GitLab Blog Post - Critical Security Release for GitLab 8.2 through 8.7

    否则,我认为这个问题太宽泛了。 我需要更多细节 - 框架、当前身份验证机制等。

    编辑: 我不太了解 Java Spring 框架,但这些链接可能会对您有所帮助:

    1. spring security (3.0.x) and user impersonation
    2. How to do impersonation in spring

    【讨论】:

    • 框架是什么意思?当前的身份验证机制是基本身份验证。收到您的来信后,我将使用相关信息更新问题
    • @andthereitgoes,-关于框架-您使用什么语言? C#? JS?红宝石?继续前进,您在此基础上使用什么框架?示例可能是 ASP.NET、Express、Ruby on Rails、Django 等 - 关于身份验证 - 您是否使用服务器上管理的会话来保留身份验证相关信息?还是您使用 JWT 之类的东西将其全部保存在客户端?
    • @dev.shin 谢谢。我使用服务器端会话对问题、Java、Spring 和 Tomcat 添加了更多说明。
    • @andthereitgoes,我不太了解 Java Spring - 我添加了一些可能有用的链接。
    猜你喜欢
    • 2011-01-24
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 2019-03-16
    • 1970-01-01
    • 2022-07-04
    • 2022-01-22
    相关资源
    最近更新 更多