[英]How Jhipster Gateway user can get the entities from a Service for the logged-in user ONLY
我正在使用jhipster微服務來構建名為Sport Stat應用程序的項目。 我已經使用jhipster生成了以下僅Spring Boot后端微服務:
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.