package Ġio . github . w ulkan owy . sdk . sc rapper . interceptor Ċ Ċ import Ġio . github . w ulkan owy . sdk . sc rapper . Sc rapper . Login Type Ċ import Ġio . github . w ulkan owy . sdk . sc rapper . Sc rapper . Login Type . AD FS Ċ import Ġio . github . w ulkan owy . sdk . sc rapper . Sc rapper . Login Type . ADF SC ards Ċ import Ġio . github . w ulkan owy . sdk . sc rapper . Sc rapper . Login Type . ADF SL ight Ċ import Ġio . github . w ulkan owy . sdk . sc rapper . Sc rapper . Login Type . ADF SL ight Cu fs Ċ import Ġio . github . w ulkan owy . sdk . sc rapper . Sc rapper . Login Type . ADF SL ight Scoped Ċ import Ġio . github . w ulkan owy . sdk . sc rapper . Sc rapper . Login Type . STANDARD Ċ import Ġio . github . w ulkan owy . sdk . sc rapper . login . Not LoggedIn Exception Ċ import Ġio . github . w ulkan owy . sdk . sc rapper . repository . Account Repository . Companion . SELECT OR _ AD FS Ċ import Ġio . github . w ulkan owy . sdk . sc rapper . repository . Account Repository . Companion . SELECT OR _ AD FS _ CAR DS Ċ import Ġio . github . w ulkan owy . sdk . sc rapper . repository . Account Repository . Companion . SELECT OR _ AD FS _ LIGHT Ċ import Ġio . github . w ulkan owy . sdk . sc rapper . repository . Account Repository . Companion . SELECT OR _ STANDARD Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . MediaType Ċ import Ġokhttp 3 . Protocol Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . Response Ċ import Ġokhttp 3 . ResponseBody Ċ import Ġok io . Buffer Ċ import Ġok io . Buffered Source Ċ import Ġorg . js oup . J soup Ċ import Ġorg . js oup . nodes . Document Ċ import Ġorg . js oup . select . Elements Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġretrofit 2 . HttpException Ċ import Ġjava . io . IOException Ċ import Ġjava . net . Cookie Manager Ċ import Ġjava . util . concurrent . locks . Lock Ċ import Ġjava . util . concurrent . locks . Re entrant Lock Ċ Ċ class ĠAuto Login Interceptor ( ĊĠĠĠ Ġprivate Ġval Ġlogin Type : ĠLogin Type , ĊĠĠĠ Ġprivate Ġval Ġjar : ĠCookie Manager , ĊĠĠĠ Ġprivate Ġval Ġempty Cookie Jar Intercept : ĠBoolean , ĊĠĠĠ Ġprivate Ġval Ġnot LoggedIn Callback : Ġsuspend Ġ() Ġ-> ĠUnit Ċ ) Ġ: ĠInter ceptor Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( this :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġlock : ĠLock Ġ= ĠRe entrant Lock () ĊĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest : ĠRequest ĊĠĠĠĠĠĠĠ Ġval Ġresponse : ĠResponse ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= Ġchain . request () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Request () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= Ġchain . proceed ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . body ?. contentType ()?. subtype Ġ!= Ġ" json ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody Ġ= Ġresponse . peek Body ( Long . MAX _ VALUE ). byte Stream () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġchain . request (). url . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Response ( J soup . parse ( body , Ġnull , Ġurl ), Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNot LoggedIn Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( lock . try Lock ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" Not Ġlogged Ġin . ĠLogin Ġin ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ Ġnot LoggedIn Callback () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchain . proceed ( chain . request (). newBuilder (). build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" Error Ġoccurred Ġon Ġlogin ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠHttp Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" Error Ġoccurred Ġon Ġlogin ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . to Ok HttpResponse ( chain . request ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIOException (" Unknown Ġexception Ġon Ġlogin ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" Login Ġfinished . ĠRelease Ġlock ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlock . unlock () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" Wait Ġfor Ġuser Ġto Ġbe Ġlogged Ġin ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlock . lock () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlock . unlock () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" User Ġlogged Ġin . ĠRetry Ġafter Ġlogin ...") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġchain . proceed ( chain . request (). newBuilder (). build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Request () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( empty Cookie Jar Intercept Ġ&& Ġjar . cookie Store . cookies . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNot LoggedIn Exception (" No Ġcookie Ġfound ! ĠYou Ġare Ġnot Ġlogged Ġin Ġyet ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Response ( doc : ĠDocument , Ġurl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġif Ġ( chain . request (). url (). toString (). contains ("/ Start . mvc / Get ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( url . contains ("/ Start . mvc / ")) Ġ{ Ġ// Ġ/ Index Ġreturn Ġerror Ġtoo Ġin Ġ 1 9 . 0 9 . 0 0 0 0 . 3 4 9 7 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdoc . select (". error Block "). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNotEmpty ()) Ġthrow ĠNot LoggedIn Exception ( it . select (". error Title "). text ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlogin Selectors Ġ= Ġwhen Ġ( login Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠST AND ARD Ġ-> Ġdoc . select ( SELECT OR _ STANDARD ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA DFS Ġ-> Ġdoc . select ( SELECT OR _ AD FS ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA DF SL ight , ĠA DF SL ight Cu fs , ĠA DF SL ight Scoped Ġ-> Ġdoc . select ( SELECT OR _ AD FS _ LIGHT ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA DF SC ards Ġ-> Ġdoc . select ( SELECT OR _ AD FS _ CAR DS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠElements () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( login Selectors . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNot LoggedIn Exception (" User Ġnot Ġlogged Ġin ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdoc . body (). text (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ/ messages ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . contains (" The Ġcustom Ġerror Ġmodule ")) Ġthrow ĠNot LoggedIn Exception (" Z alog uj ĠsiÄĻ ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ https :// github . com / square / ret rofit / issues / 3 1 1 0 # issuecomment - 5 3 6 2 4 8 1 0 2 ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠHttp Exception . to Ok HttpResponse ( request : ĠRequest ) Ġ= ĠResponse . Builder () ĊĠĠĠĠĠĠĠ Ġ. code ( code ()) ĊĠĠĠĠĠĠĠ Ġ. message ( message ()) ĊĠĠĠĠĠĠĠ Ġ. request ( request ) ĊĠĠĠĠĠĠĠ Ġ. protocol ( Protocol . HTTP _ 1 _ 1 ) ĊĠĠĠĠĠĠĠ Ġ. body ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġresponse ()?. error Body () Ġ?: Ġobject Ġ: ĠResponse Body () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcontent Length () Ġ= Ġ 0 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠcontentType (): ĠMediaType ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsource (): ĠBuffered Source Ġ= ĠBuffer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ. build () Ċ } Ċ