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 پاسخ 300 بازدید
0 امتیاز
1 پاسخ 896 بازدید
0 امتیاز
1 پاسخ 588 بازدید
+2 امتیاز
2 پاسخ 383 بازدید
0 امتیاز
1 پاسخ 330 بازدید
0 امتیاز
1 پاسخ 795 بازدید
0 امتیاز
0 پاسخ 444 بازدید
0 امتیاز
1 پاسخ 550 بازدید
0 امتیاز
1 پاسخ 606 بازدید
...