/** Ċ Ġ* ĠUtility Ġmethods Ġfor Ġspring - security Ċ Ġ*/ Ċ Ċ package Ġcom . save our tool . save . backend . utils Ċ Ċ import Ġcom . save our tool . save . entities . User Ċ import Ġorg . springframework . security . authentication . Username Password Authentication Token Ċ import Ġorg . springframework . security . core . Authentication Ċ import Ġorg . springframework . security . core . user details . UserDetails Ċ Ċ /** Ċ Ġ* ĠConvert Ġ[ Authentication ] Ġto Ġ[ User ] Ġbased Ġon Ġconvention Ġin Ġbackend . Ċ Ġ* ĠWe Ġassume Ġhere Ġthat Ġall Ġauthentic ations Ġare Ġcreated Ġby Ġ[ Con verting Authentication Manager ], Ċ Ġ* Ġso Ġ` principal ` Ġis Ġa ĠString , Ġcontaining Ġidentity Ġsource . Ċ Ġ* Ċ Ġ* Ġ@ return Ġ[ User ] Ċ Ġ*/ Ċ fun ĠAuthentication . to User (): ĠUser Ġ{ ĊĠĠĠ Ġval Ġ( identity Source , Ġname ) Ġ= Ġ( principal Ġas ĠString ). split (': ') ĊĠĠĠ Ġreturn ĠUser ( ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġname , ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġemail Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġrole Ġ= Ġ( this Ġas ĠUsername Password Authentication Token ). author ities . join ToString ( separator Ġ= Ġ", "), ĊĠĠĠĠĠĠĠ Ġsource Ġ= Ġidentity Source , ĊĠĠĠ Ġ) Ċ } Ċ Ċ /** Ċ Ġ* ĠExtract Ġusername Ġfrom Ġthis Ġ[ Authentication ] Ġbased Ġon Ġconvention Ġin Ġbackend . Ċ Ġ* ĠWe Ġassume Ġhere Ġthat Ġmost Ġof Ġthe Ġauthentic ations Ġare Ġcreated Ġby Ġ[ Con verting Authentication Manager ], Ċ Ġ* Ġso Ġ` principal ` Ġis Ġa ĠString , Ġcontaining Ġidentity Ġsource . Ċ Ġ* Ċ Ġ* Ġ@ return Ġusername Ċ Ġ*/ Ċ fun ĠAuthentication . username (): ĠString Ġ= Ġwhen Ġ( principal ) Ġ{ ĊĠĠĠ Ġ// Ġthis Ġshould Ġbe Ġthe Ġmost Ġcommon Ġbranch , Ġas Ġrequests Ġare Ġauthenticated Ġby Ġ` Con verting Authentication Manager ` ĊĠĠĠ Ġis ĠString Ġ-> Ġ( principal Ġas ĠString ). split (': '). last () ĊĠĠĠ Ġis ĠUser Details Ġ-> Ġ( principal Ġas ĠUser Details ). username ĊĠĠĠ Ġelse Ġ-> Ġerror (" Authentication Ġinstance Ġ$ this Ġhas Ġunsupported Ġtype Ġof Ġprincipal : Ġ$ principal Ġof Ġtype Ġ${ principal :: class }") Ċ } Ċ