我应该在接收消息时手动设置用户会话吗?
Should I manually set user session when receiving messages?
我有按用户保护的资源。用户自己可以编辑,然后一些超级用户也可以编辑,但其他用户不能。
关于端点,我有一个用户会话,我可以检查他们的权限以查看他们是否能够编辑资源。
但是,当涉及到 events/messages 服务接收时,不涉及用户会话。所以它无法编辑这些资源。
我知道我们收到的消息是安全的(仅来自我们自己的系统),因此我打算自己手动为所有 events/messages 具有系统用户帐户的用户设置用户会话。
我也可以将方法拆分为 updateResource 和 updateResourceNoPermissionCheck 之类的方法,但我宁愿不让任何人(包括其他开发人员)能够在他们不应该调用错误的方法时调用。
想知道人们的想法。提前致谢!
是的,这很正常。我见过开发人员通过消息 headers 传递令牌的情况,但我认为没有必要。在消息契约中提供足够的用户上下文信息可为消息接收者提供有关用户身份的可靠保证。当你的内部消息系统暴露在外部时,这是不正常的,这当然会产生安全风险,因为你不能信任发件人。
我有按用户保护的资源。用户自己可以编辑,然后一些超级用户也可以编辑,但其他用户不能。
关于端点,我有一个用户会话,我可以检查他们的权限以查看他们是否能够编辑资源。
但是,当涉及到 events/messages 服务接收时,不涉及用户会话。所以它无法编辑这些资源。
我知道我们收到的消息是安全的(仅来自我们自己的系统),因此我打算自己手动为所有 events/messages 具有系统用户帐户的用户设置用户会话。
我也可以将方法拆分为 updateResource 和 updateResourceNoPermissionCheck 之类的方法,但我宁愿不让任何人(包括其他开发人员)能够在他们不应该调用错误的方法时调用。
想知道人们的想法。提前致谢!
是的,这很正常。我见过开发人员通过消息 headers 传递令牌的情况,但我认为没有必要。在消息契约中提供足够的用户上下文信息可为消息接收者提供有关用户身份的可靠保证。当你的内部消息系统暴露在外部时,这是不正常的,这当然会产生安全风险,因为你不能信任发件人。