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 پاسخ 307 بازدید
0 امتیاز
1 پاسخ 914 بازدید
0 امتیاز
1 پاسخ 597 بازدید
+2 امتیاز
2 پاسخ 388 بازدید
0 امتیاز
1 پاسخ 338 بازدید
0 امتیاز
1 پاسخ 810 بازدید
0 امتیاز
0 پاسخ 452 بازدید
0 امتیاز
1 پاسخ 558 بازدید
0 امتیاز
1 پاسخ 619 بازدید
...