检查环回 ACL 的查询参数以允许仅“查找”用户数据
checking query arguments for loopback ACLs to allow `find`ing the user's data only
我在 docker 容器中有两个独立的环回服务 运行,它们相互通信。
一个处理 Users
,另一个处理一些与用户关联的 UserData
。它们通过两台服务器上指向另一台服务器的远程连接器连接。
当当前 User
更新服务器 A 上的详细信息时,它需要更新服务器 B 上的一些用户数据。身份验证是使用 JWT 令牌完成的,我设法让服务器 A 转发给它的令牌到服务器 B。
我遇到的问题是,服务器 A 上的 user.data()
被传递到远程连接器,并在服务器 B 上变成类似 /api/UserData/find?filter[where][userId]=2
的查询,但服务器 B 上的 ACL 不允许在 find
上查询,因为这样您就可以通过更改 where 子句来获取每个人的数据。
有没有办法创建一个动态角色,让用户根据自己的数据进行过滤? (即,我能否以某种方式检查角色解析器中的查询参数?)
我这样做的方法是创建一个角色来检查 context.remotingContext.req
中的参数并验证当前用户的位置是否包含在参数中。
我在 docker 容器中有两个独立的环回服务 运行,它们相互通信。
一个处理 Users
,另一个处理一些与用户关联的 UserData
。它们通过两台服务器上指向另一台服务器的远程连接器连接。
当当前 User
更新服务器 A 上的详细信息时,它需要更新服务器 B 上的一些用户数据。身份验证是使用 JWT 令牌完成的,我设法让服务器 A 转发给它的令牌到服务器 B。
我遇到的问题是,服务器 A 上的 user.data()
被传递到远程连接器,并在服务器 B 上变成类似 /api/UserData/find?filter[where][userId]=2
的查询,但服务器 B 上的 ACL 不允许在 find
上查询,因为这样您就可以通过更改 where 子句来获取每个人的数据。
有没有办法创建一个动态角色,让用户根据自己的数据进行过滤? (即,我能否以某种方式检查角色解析器中的查询参数?)
我这样做的方法是创建一个角色来检查 context.remotingContext.req
中的参数并验证当前用户的位置是否包含在参数中。