簡體   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