package Ġno . nav . hel se . d us se ld or f . oauth 2 . client Ċ Ċ import Ġcom . nim bus ds . jwt . Signed JWT Ċ import Ġcom . nim bus ds . oauth 2 . sdk . Client Credentials Grant Ċ import Ġcom . nim bus ds . oauth 2 . sdk . JWT Bearer Grant Ċ import Ġcom . nim bus ds . oauth 2 . sdk . Token Request Ċ import Ġcom . nim bus ds . oauth 2 . sdk . auth . Client Secret Basic Ċ import Ġcom . nim bus ds . oauth 2 . sdk . auth . Client Secret Post Ċ import Ġcom . nim bus ds . oauth 2 . sdk . auth . Secret Ċ import Ġcom . nim bus ds . oauth 2 . sdk . id . Client ID Ċ import Ġjava . net . URI Ċ Ċ class ĠClient Secret AccessToken Client ( ĊĠĠĠĠĠĠĠ ĠclientId Ġ: ĠString , ĊĠĠĠĠĠĠĠ Ġclient Secret : ĠString , ĊĠĠĠĠĠĠĠ Ġauthentication Mode : ĠAuthentication Mode Ġ= ĠAuthentication Mode . POST , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtoken Endpoint Ġ: ĠURI Ċ ) Ġ: ĠAccess Token Client , ĠNim bus AccessToken Client () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġclient Authentication Ġ= Ġwhen Ġ( authentication Mode ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAuthentication Mode . POST Ġ-> Ġ ĠClient Secret Post ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠClient ID ( clientId ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSecret ( client Secret ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAuthentication Mode . BASIC Ġ-> ĠClient Secret Basic ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠClient ID ( clientId ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSecret ( client Secret ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget AccessToken ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscopes : ĠSet < String >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Be half Of : ĠString ĊĠĠĠ Ġ): ĠAccess Token Response Ġ= Ġget AccessToken ( get On Be half Of Token Request ( on Be half Of , Ġscopes )) ĊĊĠĠĠ Ġoverride Ġfun Ġget AccessToken ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscopes : ĠSet < String > ĊĠĠĠ Ġ): ĠAccess Token Response Ġ= Ġget AccessToken ( getClient Credentials Token Request ( scopes )) ĊĊĠĠĠ Ġ// Ġhttps :// docs . microsoft . com / en - us / azure / active - directory / develop / v 2 - oauth 2 - client - creds - grant - flow ĊĠĠĠ Ġprivate Ġfun ĠgetClient Credentials Token Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscopes : ĠSet < String > ĊĠĠĠ Ġ) Ġ: ĠToken Request Ġ= ĠToken Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Endpoint , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient Authentication , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠClient Credentials Grant (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Scope ( scopes ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ// Ġhttps :// docs . microsoft . com / en - us / azure / active - directory / develop / v 2 - oauth 2 - on - be half - of - flow ĊĠĠĠ Ġprivate Ġfun Ġget On Be half Of Token Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Be half Of : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscopes : ĠSet < String > ĊĠĠĠ Ġ) Ġ: ĠToken Request Ġ= ĠToken Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Endpoint , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient Authentication , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJWT Bearer Grant ( Signed JWT . parse ( on Be half Of )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Scope ( scopes ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Be half Of Parameters ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġenum Ġclass ĠAuthentication Mode ( private Ġval Ġr fc : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBAS IC (" client _ secret _ basic "), ĊĠĠĠĠĠĠĠ ĠPOST (" client _ secret _ post ") ĊĠĠĠ Ġ} Ċ }