Skip to content

Instantly share code, notes, and snippets.

@nestoru
Created December 5, 2015 00:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nestoru/24269714a298cce935a1 to your computer and use it in GitHub Desktop.
Save nestoru/24269714a298cce935a1 to your computer and use it in GitHub Desktop.
spring-impersonation-audit.awk
#!/usr/bin/awk
# spring-impersonation-audit.awk
# author: Nestor Urquiza
# date: 20151123
# description: Lists users and impersonated users per request
{
if(!usernames[$8] && match($0,"login.*j_username")){
usernames[$8]=gensub(/^.*j_username=([^& ]*)[& ].*$/,"\\1","g");
}
sessionids[$9]=$8;
others[$9]=$1" "$2" "$7;
if(match($0,"switchUser.*j_username")){
impersonated[$8]=gensub(/^.*j_username=([^& ]*)[& ].*$/,"\\1","g");
}
if(match($0,"switchUserExit.*")){
impersonated[$8]="na";
}
if(impersonated[$8]){
impersonatedUserNames[$9]=impersonated[$8];
} else {
impersonatedUserNames[$9]="na";
}
}
END {
for(request in sessionids){
sessionid=sessionids[request];
if(usernames[sessionid]){
print others[request]" "sessionid" "usernames[sessionid]" "impersonatedUserNames[request]" "request;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment