0 امتیاز
قبل در برنامه نویسی توسط (4 امتیاز)
ویرایش شده قبل توسط

ما الان از سمت Api سامانه خودمون یک فرآیند رو با فراخوانی سرویس Activiti شروع کردیم. همه چیز هم درست هست. ما برای شروع فرآیند TGT گرفتیم و بعد ST. سپس سرویس رو فراخوانی کردیم. اما مسئله اینجاست، ما برای گرفتن TGT برای پارارمترهای username و password مقادیر ثابتی رو به صورت هاردکد قرار دادیم، مثلا root, 123456. مسئله ای که پیش میاد اینه که این فرآیند توسط این کاربری که براش TGT گرفتیم شروع میشه و نه کاربری که تو پورتال لاگین کرده. با این اوصاف سوالات زیر وجود دارند:
Api ما Casify شده است. ما سمت Api میتوانیم به user و حتی service ticket مربوط به آن دسترسی داشته باشیم. با داشتن این اطلاعات روشی برای فراخوانی سرویس آغاز فرآیند با کاربر لاگین شده در پورتال وجود دارد؟

1 پاسخ

0 امتیاز
قبل توسط (15 امتیاز)
ویرایش شده قبل توسط
 
بهترین پاسخ

در این حالت می توان از مکانیزم Proxy Ticket استفاده کرد. برای این کار مراحل زیر بایستی طی شود:

- فعال سازی دریافت PGT در Cas Client

- دریافت Proxy Ticket برای سرویس مدنظر: در DotNet می توانید از متود CasAuthentication.getProxyTicketIdFor استفاده کنید.

- ارسال Ticket همراه درخواست در قالب Header ای به نام ticket.

سرویس موردنظر شما در Activiti این Header را خوانده و اطلاعات کاربر را استخراج می کند.

نکته تکمیلی اینکه لازم نیست برای هر بار اجرای سرویس از طریق یک کاربر، Ticket جدیدی دریافت کنید و بهتر است آن را در Session کاربر Cache کنید.

سوالات مشابه

0 امتیاز
1 پاسخ 196 بازدید
0 امتیاز
1 پاسخ 672 بازدید
0 امتیاز
1 پاسخ 435 بازدید
+2 امتیاز
2 پاسخ 265 بازدید
0 امتیاز
1 پاسخ 234 بازدید
0 امتیاز
1 پاسخ 643 بازدید
0 امتیاز
0 پاسخ 325 بازدید
0 امتیاز
1 پاسخ 360 بازدید
0 امتیاز
1 پاسخ 453 بازدید
...