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 پاسخ 334 بازدید
0 امتیاز
1 پاسخ 992 بازدید
0 امتیاز
1 پاسخ 643 بازدید
+2 امتیاز
2 پاسخ 422 بازدید
0 امتیاز
1 پاسخ 359 بازدید
0 امتیاز
1 پاسخ 850 بازدید
0 امتیاز
0 پاسخ 489 بازدید
0 امتیاز
1 پاسخ 606 بازدید
0 امتیاز
1 پاسخ 672 بازدید
...