package Ġno . nav . s bl . dialog arena . min inn bo ks Ċ Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġkotlinx . coroutines . slf 4 j . M DC Context Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġno . nav . common . c xf . St s Config Ċ import Ġno . nav . common . health . HealthCheck Result Ċ import Ġno . nav . common . health . self test . Self Test Check Ċ import Ġno . nav . common . log . M DC Constants Ċ import Ġno . nav . s bl . dialog arena . min inn bo ks . Port Utils . port Builder Ċ import Ġno . nav . s bl . dialog arena . min inn bo ks . Port Utils . port Type Self Test Check Ċ import Ġno . nav . s bl . dialog arena . min inn bo ks . common . Disk Check Ċ import Ġno . nav . s bl . dialog arena . min inn bo ks . common . Trust store Check Ċ import Ġno . nav . s bl . dialog arena . min inn bo ks . consumer .* Ċ import Ġno . nav . s bl . dialog arena . min inn bo ks . consumer . saf . S af Service Ċ import Ġno . nav . s bl . dialog arena . min inn bo ks . consumer . saf . S af ServiceImpl Ċ import Ġno . nav . s bl . dialog arena . min inn bo ks . consumer . sts . System user Token Provider Ċ import Ġno . nav . s bl . dialog arena . min inn bo ks . consumer . sts . System user Token Provider . Companion . from Token Endpoint Ċ import Ġno . nav . s bl . dialog arena . min inn bo ks . consumer . tok end ings . Caching Tok end ings ServiceImpl Ċ import Ġno . nav . s bl . dialog arena . min inn bo ks . consumer . tok end ings . Tok end ings Service Ċ import Ġno . nav . t jen este . dom ene . br uk er dialog . h env en del se . v 1 . in ns yn h env en del se . In ns yn H env en del se Port Type Ċ import Ġno . nav . t jen este . dom ene . br uk er dialog . h env en del se . v 2 . h env en del se . H env en del se Port Type Ċ import Ġorg . slf 4 j . M DC Ċ import Ġjava . util .* Ċ Ċ class ĠService Config ( val Ġconfiguration : ĠConfiguration ) Ġ{ ĊĠĠĠ Ġval Ġtok end ings Service : ĠTok end ings Service Ġ= ĠC aching Tok end ings ServiceImpl ( configuration ) ĊĠĠĠ Ġval Ġun le ash Service : ĠUn le ash Service Ġ= ĠUn le ash ServiceImpl ( ĊĠĠĠĠĠĠĠ ĠBy Environment Strategy () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġh env en del se Port Type Ġ= Ġport Builder ( ĊĠĠĠĠĠĠĠ ĠH env en del se Port Type :: class . java , ĊĠĠĠĠĠĠĠ Ġconfiguration . HEN VEN DEL SE _ WS _ URL , ĊĠĠĠĠĠĠĠ Ġ" classpath : wsdl / H env en del se . wsdl ", ĊĠĠĠĠĠĠĠ Ġst s Config () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġin ns yn H env en del se Port Type Ġ= Ġport Builder ( ĊĠĠĠĠĠĠĠ ĠIn ns yn H env en del se Port Type :: class . java , ĊĠĠĠĠĠĠĠ Ġconfiguration . IN NS YN _ HEN VEN DEL SE _ WS _ URL , ĊĠĠĠĠĠĠĠ Ġ" classpath : wsdl / In ns yn H env en del se . wsdl ", ĊĠĠĠĠĠĠĠ Ġst s Config () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġh env en del se Service Ġ= Ġh env en del se Service () ĊĠĠĠ Ġval Ġst s Service Ġ= Ġsystem User Token Provider () ĊĠĠĠ Ġval Ġsaf Service : ĠS af Service Ġ= ĠS af ServiceImpl ( ĊĠĠĠĠĠĠĠ Ġtok end ings Ġ= Ġtok end ings Service , ĊĠĠĠĠĠĠĠ Ġconfiguration Ġ= Ġconfiguration ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġself Test Check St s Service : ĠSelf Test Check Ġ= ĊĠĠĠĠĠĠĠ ĠSelf Test Check (" S jek ker Ġat Ġsystem br uk er Ġkan Ġh ente Ġtoken Ġf ra ĠST S ", Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠM DC . put ( M DC Constants . M DC _ CALL _ ID , ĠUUID . randomUUID (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( M DC Context ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Health St s Service () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġself Test Check H env en del se : ĠSelf Test Check Ġ= Ġport Type Self Test Check ( ĊĠĠĠĠĠĠĠ Ġ" no . nav . t jen este . dom ene . br uk er dialog . h env en del se . v 2 . h env en del se . H env en del se Port Type " ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġh env en del se Port Type . ping Port . ping () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġself Test Check In ns yn H env en del se Port Type : ĠSelf Test Check Ġ= Ġport Type Self Test Check ( ĊĠĠĠĠĠĠĠ Ġ" no . nav . t jen este . dom ene . br uk er dialog . h env en del se . v 1 . in ns yn h env en del se . In ns yn H env en del se Port Type " ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġin ns yn H env en del se Port Type . ping Port . ping () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġself Test Checklist Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġtok end ings Service . self test Check , ĊĠĠĠĠĠĠĠ Ġself Test Check St s Service , ĊĠĠĠĠĠĠĠ Ġself Test Check H env en del se , ĊĠĠĠĠĠĠĠ Ġself Test Check In ns yn H env en del se Port Type , ĊĠĠĠĠĠĠĠ ĠDisk Check . as Sel ft est Check (), ĊĠĠĠĠĠĠĠ ĠTrust store Check . as Sel ft est Check (), ĊĠĠĠĠĠĠĠ ĠSelf Test Check (" Un le ash ", Ġfalse , Ġun le ash Service :: check Health ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Health St s Service (): ĠHealth Check Result Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsystem User AccessToken Ġ= Ġst s Service . getSystem User AccessToken () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire NotNull ( system User AccessToken ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" System token Ġvar Ġnull " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHealth Check Result . healthy () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHealth Check Result . un healthy ( e . message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġh env en del se Service (): ĠH env en del se Service Ġ{ ĊĠĠĠĠĠĠĠ ĠcheckNotNull ( h env en del se Port Type ) Ġ{ Ġ" h env en del se Port Type Ġis Ġnull " Ġ} ĊĠĠĠĠĠĠĠ ĠcheckNotNull ( in ns yn H env en del se Port Type ) Ġ{ Ġ" in ns yn H env en del se Port Type Ġis Ġnull " Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠH env en del se Service . Default ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh env en del se Port Type . port , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin ns yn H env en del se Port Type . port ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġst s Config (): ĠSt s Config ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSt s Config . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ( configuration . SECURITY TOKEN SERVICE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. username ( configuration . SRV MIN IN NB OK S _ USERNAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. password ( configuration . SRV MIN IN NB OK S _ PASSWORD ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsystem User Token Provider (): ĠSystem user Token Provider Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfrom Token Endpoint ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . STS _ TOKEN ENDPOINT _ URL , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . F SS _ SRV MIN IN NB OK S _ USERNAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . F SS _ SRV MIN IN NB OK S _ PASSWORD , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . STS _ API KEY ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ