Jak zasymulować otwieranie przeglądarki i przekierowań do logowania po stronie backendu.

0

Hej.
Piszę integrację z zewnętrznym systemem autentykacja poprzez oauth. Chcę zautomatyzować logowanie. Flow autentykacji z api jest taki, że wysyła się request do api z parametrami o redirect na stronę logowania zew systemu, ręcznie trzeba wklepać credentiale i po wlogowaniu api odsyła nam wcześniej przez nas zdefiniowany url do przekierowania z powrotem na naszą stronę.
Chciałbym pominąć element przekierowań, tak aby backend automatycznie się autentykował, bez potrzeby wpisywania rzeczy z palca.
Czy są narzędzia do zasymulowania otwerania redirect_url po stronie serwera? Na razie próbuję podejrzeć requesty jakie sa wykonywane na stronie logowania i sporządzić formularz po stronie resttemplate, ale się pogubiłem.
Technologie to Java/Spring, client restowy RestTemplate.

1
  1. Stawiasz jakiegoś WireMocka / embedded http server
  2. Tenże serwer oczekuje na request na odpowiednim endpoincie i odpowiada w oczekiwany sposób (czyli tym twoim redirectem)
  3. Profit!
0

Hmm. Nie do końca rozumiem. W jaki sposób embedded server zmienia moja sytuację? Redirecty wysyła zewnętrzne api i to są redirecty do ich strony logowania. Moje pytanie brzmi czy jestem w stanie zasymulować otwarcie ich strony po stronie mojego serwera i wysłanie ich formularza do nich, a nie mockowanie mojego api i wystawianie redirectów. Może to jest to samo tylko, ja nie rozumiem jak to miało by działać :(

0

Aa dobra, ja myślałem że ty chcesz to przetestować :)
Nie no oczywiście że czegoś takiego się nie da zrobić! Przecież cała idea OAuth jest taka, że user loguje się na zaufanej stronie, która przekazuje twojej aplikacji informacje o tym logowaniu. W jaki sposób chcesz to niby automatyzować? Znasz credentiale usera do tego providera OAuth(którym może byc jakiś Google czy Facebook)? o_O To tym bardziej nie rozumiem co próbujesz zrobić. Po co ci ten OAuth w ogóle? Czy może chcesz dostać token do działania na rzecz tego providera (np. token do wykonywania akcji w google w imieniu użytkownika)?

Opisz może jasno co chcesz osiągną.

0

Jeszcze raz :)
Integruje moje api z api partnera. Mój backend ma dostęp do operacji crud u providera. Edytuje, usuwam, dodaje rzeczy u mnie i zapisuja się u mnie jak i u partnera poprzez jego api.
Partner ma zaimplementowane oAuth. Ja znam credentiale do autentykacji, i chcę pozyskać tokeny, które u siebie zapisuje i api się komunikują. Ponieważ co jakiś czas tokeny wygasają ( refresh również i dosyć często), to trzeba z palucha autentykować mój serwer, a fajnie by było tego nie robić.
Wysyłając "spreparowany" formularz (popdejrzałem co wysyłają podczas logowania, cookiesy i nagłówki) Postmanem w sumie dostaję tokeny. Wiem, że oAuth to oAuth ale autentykacja z palucha 2 backendów jakaś taka słaba jest :/

2

Ja znam credentiale do autentykacji

To bardzo źle :)
Powinniście w takim razie może jednak ustalić żeby refresh tokeny nie wygasały a nie kombinować w taki dziwny sposób?

Anyway, no oczywiście możesz to obejść, wysyłasz po prostu request do oautha, on ci odpowiada fomularzem logowania, ty go submitujesz (tzn wysyłasz posta ze swojego backendu) i voila. Ale to jest jakiś chory sposób.

0

Integracja z tym providerem, to w ogóle chora przygoda, więc to mnie nie dziwi Tak czy siak trudno muszę obadać, które nagłówki i cookiesy potrzebne i działać w brzydki sposób. Dzięki ! :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1