package Ġcom . sal to . cl ays dk demo . login . oid Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġandroid . util . Log Ċ import Ġcom . sal to . cl ays dk demo . R Ċ import Ġnet . openid . app auth . Auth State Ċ import Ġnet . openid . app auth . Authorization Request Ċ import Ġnet . openid . app auth . ResponseType Values Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠO ID Config Ġ@ Inject Ġconstructor ( context : ĠContext , Ġprivate Ġval Ġids Url : ĠString ) Ġ: ĠIO ID Config Ġ{ ĊĊĠĠĠ Ġobject ĠEndpoint Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAUTH ORIZ ATION Ġ= Ġ"/ connect / authorize " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTOKEN Ġ= Ġ"/ connect / token " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEND _ SESSION Ġ= Ġ"/ connect / end session " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠO ID Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPARAM _ ID _ TOKEN _ HINT Ġ= Ġ" id _ token _ hint " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPARAM _ RE DIRECT _ URI Ġ= Ġ" post _ logout _ redirect _ uri " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠclientId : ĠString Ġ= Ġcontext . getString ( R . string . client _ id ) ĊĠĠĠ Ġval Ġd kg ClientId : ĠString Ġ= Ġcontext . getString ( R . string . dk g _ client _ id ) ĊĊĠĠĠ Ġval Ġredirect : ĠString Ġ= Ġcontext . getString ( R . string . redirect _ url ) ĊĠĠĠ Ġval Ġlogout Redirect : ĠString Ġ= Ġcontext . getString ( R . string . logout _ redirect _ url ) ĊĠĠĠ Ġval Ġscope Ġ= Ġ" openid Ġprofile Ġoffline _ access Ġuser _ api . full _ access " ĊĊĠĠĠ Ġoverride Ġfun Ġget Logout Request ( auth State : ĠAuth State ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġend Session Endpoint Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUri . parse ("${ ids Url }${ Endpoint . END _ SESSION }") ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġend Session Endpoint . build Up on () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. append QueryParameter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO ID . PARAM _ ID _ TOKEN _ HINT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauth State . id Token ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. append QueryParameter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠO ID . PARAM _ RE DIRECT _ URI , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogout Redirect ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġreturn Ġrequest . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Authorization Request ( auth State : ĠAuth State ): ĠAuthorization Request ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= Ġauth State . authorization Service Configuration Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġauth RequestBuilder Ġ= ĠAuthorization Request . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠclientId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse Type Values . CODE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUri . parse ( redirect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauth RequestBuilder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Scope ( scope ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Error ", Ġe . localized Message Ġ?: Ġe . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }