package Ġcom . github . sol air er ove . j azz . robots . application . interceptor Ċ Ċ import Ġcom . github . sol air er ove . j azz . robots . application . audit ing . Audit Ċ import Ġcom . github . sol air er ove . j azz . robots . application . audit ing . Audit ing Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġorg . springframework . web . method . Handler Method Ċ import Ġorg . springframework . web . servlet . Handler Mapping Ċ import Ġorg . springframework . web . servlet . handler . Handler Interceptor Adapter Ċ import Ġjavax . servlet . http . HttpServletRequest Ċ import Ġjavax . servlet . http . HttpServletResponse Ċ Ċ /** Ċ Ġ* ĠSets Ġcurrent Ġapp Ġfor Ġa Ġuser . ĠAud its Ġendpoint Ġaccess . Ċ Ġ*/ Ċ @ Component Ċ class ĠEndpoint Interceptor ( val Ġaudit ing : ĠAudit ing ) Ġ: ĠHandler Interceptor Adapter () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġpre Handle ( request : ĠHttpServletRequest ?, Ġresponse : ĠHttpServletResponse ?, Ġhandler : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġaudit ( request , Ġhandler ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . pre Handle ( request , Ġresponse , Ġhandler ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġaudit ( request : ĠHttpServletRequest ?, Ġhandler : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhandler Method Ġ= Ġhandler Ġas ĠHandler Method ĊĠĠĠĠĠĠĠ Ġval Ġaudit Ġ= Ġhandler Method . getMethod Annotation ( Audit :: class . java ) ĊĠĠĠĠĠĠĠ Ġif Ġ( audit Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġ(" Called Ġcontroller Ġfor Ġpath : Ġ" Ġ+ Ġrequest !!. method Ġ+ Ġ" Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġrequest . getAttribute ( Handler Mapping . PATH _ WITH IN _ HANDLER _ MAPPING _ ATTRIBUTE )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( key , Ġvalue ) Ġin Ġrequest . parameter Map ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( v Ġin Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs . append ( if Ġ( args . isEmpty ()) Ġ' ?' Ġelse Ġ'& '). append ( key ). append (' =' ). append ( v ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġaudit ing . log App ( message Ġ+ Ġargs ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ