繁体   English   中英

Jhipster网关用户如何才能仅从登录用户的服务中获取实体

[英]How Jhipster Gateway user can get the entities from a Service for the logged-in user ONLY

我正在使用jhipster微服务来构建名为Sport Stat应用程序的项目。 我已经使用jhipster生成了以下仅Spring Boot后端微服务:

  • PlayerStatService
  • LeagueService

PlayerStatService具有多个实体,例如Sport,Skill,Player等。 每个玩家都可以拥有会话,目标等列表。

运动和技能都是预先定义的。

我还生成了一个网关客户端,可以与上述服务安全地通信。 您可以在网关(客户端)上注册并注册为用户。 用户可以是正在监视其玩家的Coach。 教练可以添加新球员,并开始监视和跟踪他们的状态。 一个教练可以有很多球员(一对多)。

登录的用户(教练)应仅查看其球员及其统计信息,而不能查看其他人的统计信息。 我假设我可以在播放器和用户之间具有实体关系,以便可以使用findByUserIsCurrentUser来获取当前的用户播放器和统计信息。

我知道,如果它是整体应用程序,则可以轻松使用。

问题:因为用户是由网关上的jhipster生成的,而Player是在PlayerStatService上的,所以我无法在它们之间创建任何关系。 我得到这个错误。

您的实体与网关没有关系,因为它是网关实体

我的问题:是否可以通过使用生成的类和对象(服务,存储库)来实现这一目标?

如果不是,您将如何提出建议,例如:限制用户只能拥有自己的玩家? 在调用PlayerStatService RestAPI来获取玩家时,您如何建议我在存储库级别的查询中合并登录的用户?

编辑:我正在使用JWT作为身份验证

这不能在网关中完成,必须在服务中完成,理想情况下只能基于令牌中包含的数据:主题,角色或其他声明,这样您的服务就无需查询网关或身份验证提供程序。

如您所见,使用与用户的关系无法做到这一点,但是您可以向您的实体添加一个user_id简单字段,并将其与令牌的主题进行匹配。

角色对于限制访问也很有用,但是如果它们不足以建模用户所属的团队,则可以将team_id添加为令牌的声明。 这样,您就可以轻松确定教练,因为他/他拥有ROLE_COACH,并且她/他在哪个团队中担任该角色。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM