package Ġcom . byte train . prod inv . config . audit Ċ Ċ import Ġcom . byte train . prod inv . domain . Persistent Audit Event Ċ import Ġorg . springframework . boot . act uate . audit . Audit Event Ċ import Ġorg . springframework . security . web . authentication . Web Authentication Details Ċ import Ġorg . springframework . stereotype . Component Ċ Ċ @ Component Ċ class ĠAudit Event Converter Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConvert Ġa Ġlist Ġof Ġ[ Persistent Audit Event ] Ġto Ġa Ġlist Ġof Ġ[ Audit Event ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġpersistent Audit Events Ġthe Ġlist Ġto Ġconvert . ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġconverted Ġlist . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠconvertTo Audit Event ( persistent Audit Events : ĠIterable < Persistent Audit Event > ?) Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( persistent Audit Events ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġmutable ListOf () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġpersistent Audit Events . as Sequence (). map NotNull Ġ{ ĠconvertTo Audit Event ( it ) Ġ}. to Mutable List () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConvert Ġa Ġ[ Persistent Audit Event ] Ġto Ġan Ġ[ Audit Event ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġpersistent Audit Event Ġthe Ġevent Ġto Ġconvert . ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġconverted Ġlist . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠconvertTo Audit Event ( persistent Audit Event : ĠPersistent Audit Event ?): ĠAudit Event ? Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( persistent Audit Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠAudit Event ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersistent Audit Event . audit Event Date , Ġpersistent Audit Event . principal , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpersistent Audit Event . audit EventType , Ġconvert DataTo Objects ( persistent Audit Event . data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInternal Ġconversion . ĠThis Ġis Ġneeded Ġto Ġsupport Ġthe Ġcurrent ĠSpring Boot Ġact uator [ ĠAudit Event Repository ] Ġinterface . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdata Ġthe Ġdata Ġto Ġconvert . ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġmap Ġof Ġ[ String ], Ġ[ Any ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġconvert DataTo Objects ( data : ĠMutable Map < String , ĠString ?> ?): ĠMutable Map < String , ĠAny ?> Ġ= ĊĠĠĠĠĠĠĠ Ġdata ?. map Values To ( mutable Map Of ()) Ġ{ Ġit . value Ġ} Ġ?: Ġmutable Map Of () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInternal Ġconversion . ĠThis Ġmethod Ġwill Ġallow Ġto Ġsave Ġadditional Ġdata . ĊĠĠĠĠ Ġ* ĠBy Ġdefault , Ġit Ġwill Ġsave Ġthe Ġobject Ġas Ġstring . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdata Ġthe Ġdata Ġto Ġconvert . ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġmap Ġof Ġ[ String ], Ġ[ String ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġconvert Data ToString s ( data : ĠMap < String , ĠAny ?> ?): ĠMap < String , ĠString ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġmutable Map Of < String , ĠString ?> () ĊĠĠĠĠĠĠĠ Ġdata ?. forEach Ġ{ Ġ( key , Ġvalue ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠExtract Ġthe Ġdata Ġthat Ġwill Ġbe Ġsaved . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġis ĠWeb Authentication Details ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresults [" remote Address "] Ġ= Ġvalue . remote Address ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresults [" sessionId "] Ġ= Ġvalue . sessionId ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresults [ key ] Ġ= Ġvalue ?. toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresults ĊĠĠĠ Ġ} Ċ } Ċ