برای ایجاد محدودیت روی کنترلر ها، یا فیلتر کردن نتایج بسته به نقش کاربر، با محدودیت هایی در JHipster 5.x روبرو شدیم. توکنی که از Keycloak میگرفتیم شامل نقشهای کاربر بود ولی در مسیر اشتباهی! Keycloak نقش ها رو در مسیر realm_access.roles داخل توکن قرار میداد در حالی که Spring Security، در روت playload توکن دنبال roles میگرده.
من این مشکل رو سمت از سمت Keycloak حل کردم و roles رو به روت playload اضافه کردم، که در دنباله این مطلب به این موضوع میپردازم.
وارد realm مورد نظرتون بشید و از منوی دست چپ، Client Scopes را انتخاب کنید:
گزینه roles را انتخاب کنید:
نکته: اگر این گزینه را ندارید، از طریق دکمه create آنرا ایجاد کنید و اطلاعات زیر را برایش وارد کنید (این اطلاعات اختیاری است و میتوانید با هر نام دلخواهی ایجاد کنید)
به تب Mappers برید، و دکمه create را بزنید:
اطلاعات زیر را در این فرم وارد کنید و آنرا ذخیره کنید:
نکته: اگر Client Scope را دستی ایجاد کردید، باید این مرحله را نیز انجام دهید، و آن اضافه کردن scope به client مورد نظرتان است. از منوی دست چپ گزینه Clients را انتخاب کنید، کلاینت مد نظرتان را انتخاب کنید، به تب Client Scopes رفته و roles (یا هر اسمی که به آن تخصیص دادید) به Assigned Default Client Scopes منتقل کنید.
در این مرحله کار ما تمام شده است و باید توکن را بررسی کنید و اطمینان حاصل کنید که roles به آن اضافه شده است.
هیچ نظری موجود نیست:
ارسال یک نظر