package Ġcom . ice . kt u ice . al . services . scrap ers . login . stages Ċ Ċ import Ġcom . ice . kt u ice . al . services . scrap ers . login . Login DataStore Ċ import Ġcom . ice . kt u ice . al . services . scrap ers . login . Login Util Ċ import Ġorg . js oup . Connection Ċ import Ġorg . js oup . J soup Ċ Ċ class ĠLogin User Pass Stage : ĠStage () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġexecute ( cookie Jar : ĠHashMap < String , ĠString >, Ġdata Store : ĠLogin DataStore ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// login . kt u . lt / simp les aml / module . php / core / login user pass . php " ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠJ soup . connect ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. cookies ( cookie Jar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. data ( map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" username " Ġto Ġdata Store . userName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" password " Ġto Ġdata Store . password , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Auth State " Ġto Ġdata Store . auth State ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. headers ( Login Util . getAdditional Headers ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. method ( Connection . Method . POST ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġval Ġparse Ġ= Ġrequest . parse () ĊĠĠĠĠĠĠĠ Ġval Ġparsed Query Arguments Ġ= ĠLogin Util . split Query ( parse . base Uri ()) ĊĠĠĠĠĠĠĠ Ġcookie Jar . put All ( request . cookies ()) ĊĠĠĠĠĠĠĠ Ġdata Store . state Id Ġ= Ġparsed Query Arguments . getValue (" State Id ") ĊĠĠĠĠĠĠĠ Ġval Ġinput List Ġ= Ġparse . select (" input ") ĊĠĠĠĠĠĠĠ Ġtry { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthese Ġcan Ġeither Ġbe Ġgiven Ġhere Ġor Ġin Ġthe ĠAg ree Stage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Store . saml Response Ġ= Ġinput List . first Ġ{ Ġit . attr (" name ") Ġ== Ġ" SAML Response " Ġ}. attr (" value ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Store . relay State Ġ= Ġinput List . first Ġ{ Ġit . attr (" name ") Ġ== Ġ" Relay State " Ġ}. attr (" value ") ĊĠĠĠĠĠĠĠ Ġ} catch Ġ( e : ĠNoSuch ElementException ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( e . stack Trace ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġrequest . statusCode () ĊĠĠĠ Ġ} Ċ }