package Ġcom . pk . ys f . api . security Ċ Ċ import Ġorg . springframework . security . authentication . Username Password Authentication Token Ċ import Ġorg . springframework . security . core . Authentication Ċ import Ġorg . springframework . security . core . Granted Authority Ċ import Ġorg . springframework . security . core . authority . Authority Utils Ċ import Ġorg . springframework . security . core . user details . User Ċ import Ġorg . springframework . security . oauth 2 . common . exceptions . Invalid Token Exception Ċ import Ġorg . springframework . security . oauth 2 . provider . token . User Authentication Converter Ċ import Ġorg . springframework . util . StringUtils Ċ Ċ private Ġconst Ġval ĠUSER _ NAME : ĠString Ġ= Ġ" user _ name " Ċ Ċ class ĠCustom User Authentication Converter Ġ: ĠUser Authentication Converter Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġextract Authentication ( map : ĠMap < String , Ġ* >): ĠAuthentication ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( map . containsKey ( User Authentication Converter . USERNAME )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUsername Password Authentication Token ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . getUser Detail ( map ), Ġ" N / A ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Author ities ( map )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġnull ĊĊĠĠĠ Ġprivate Ġfun ĠgetUser Detail ( map : ĠMap < String , Ġ* >): ĠUser Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUser ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( map [ USER _ NAME ] Ġ?: Ġthrow ĠInvalid Token Exception (" Token Ġnot Ġcontain Ġusername ")) Ġas ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun Ġget Author ities ( map : ĠMap < String , Ġ* >): ĠCollection < Granted Authority >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġauthor ities Ġ= Ġmap [ User Authentication Converter . AUTHOR ITIES ] ĊĠĠĠĠĠĠĠ Ġif Ġ( author ities Ġis ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAuthor ity Utils . comma Separ ated StringTo Authority List ( author ities ) ĊĠĠĠĠĠĠĠ Ġif Ġ( author ities Ġis ĠCollection <* >) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAuthor ity Utils . comma Separ ated StringTo Authority List ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStringUtils . collection To Comma Delimit edString ( author ities ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Author ities Ġmust Ġbe Ġeither Ġa ĠString Ġor Ġa ĠCollection ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġconvert User Authentication ( user Authentication : ĠAuthentication ): ĠMutable Map < String , Ġ*> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġmutable Map Of < String , ĠAny >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUser Authentication Converter . USERNAME Ġto Ġuser Authentication . name ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( user Authentication . author ities Ġ!= Ġnull Ġ&& Ġ! user Authentication . author ities . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse [ User Authentication Converter . AUTHOR ITIES ] Ġ= ĠAuthor ity Utils . authority List To Set ( user Authentication . author ities ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĠĠĠ Ġ} Ċ }