adds gdpr obfuscation quoting for:
+ subscriber numbers
+ subscriber ip addresses
+ subscriber usernames
+ any logmessage "DATA": query parameters, form data, response data
+ subscriber uuid's
+ call id's
+ callforward sip uri's
the quoting is centralized by $c->qs() ("quote sensitive"), using
catalyst plugin mechanism.
escape symbols are set to « (\x{ab}) and » (\x{bb}).
generate_logfile_data_inventory.pl was modified to mark loglines
with "gdpr affected" status, if $c->qs() was used in a log message.
Change-Id: I0f42d7992594232ae33e5666b0a64009211c5b76
error=>"access violation, subscriberadmin ".$c->user->uuid." with contract id ".$c->user->account_id." tries to access foreign contract id $contract_id",
error=>"access violation, subscriberadmin ".$c->qs($c->user->uuid)." with contract id ".$c->user->account_id." tries to access foreign contract id $contract_id",
error=>"access violation, subscriberadmin ".$c->user->uuid." with contract id ".$c->user->account_id." tries to access foreign contract id $contract_id",
error=>"access violation, subscriberadmin ".$c->qs($c->user->uuid)." with contract id ".$c->user->account_id." tries to access foreign contract id $contract_id",
# LEFT JOIN `billing`.`voip_subscribers` `subscriber` ON `subscriber`.`id` = `me`.`subscriber_id`
# WHERE ( ( ( `subscriber`.`id` != `subscriber`.`primary_number_id` OR `subscriber`.`status` = 'terminated' ) AND `subscriber`.`contract_id` = '789' ) ) ORDER BY `me`.`id`;
@ -3212,7 +3212,7 @@ sub edit_voicebox :Chained('base') :PathPart('preferences/voicebox/edit') :Args(
unless($vm_user){
NGCP::Panel::Utils::Message::error(
c=>$c,
log=>"no voicemail user found for subscriber uuid ".$c->stash->{subscriber}->uuid,
log=>"no voicemail user found for subscriber uuid ".$c->qs($c->stash->{subscriber}->uuid),
desc=>$c->loc('Failed to find voicemail user.'),
);
NGCP::Panel::Utils::Navigation::back_or($c,
@ -3395,7 +3395,7 @@ sub edit_voicebox :Chained('base') :PathPart('preferences/voicebox/edit') :Args(
# default
NGCP::Panel::Utils::Message::error(
c=>$c,
log=>"trying to set invalid voicemail param '$attribute' for subscriber uuid ".$c->stash->{subscriber}->uuid,
log=>"trying to set invalid voicemail param '$attribute' for subscriber uuid ".$c->qs($c->stash->{subscriber}->uuid),
desc=>$c->loc('Invalid voicemail setting'),
);
NGCP::Panel::Utils::Navigation::back_or($c,
@ -3535,7 +3535,7 @@ sub edit_fax :Chained('base') :PathPart('preferences/fax/edit') :Args(1) {
# default
NGCP::Panel::Utils::Message::error(
c=>$c,
log=>"trying to set invalid fax param '$attribute' for subscriber uuid ".$c->stash->{subscriber}->uuid,
log=>"trying to set invalid fax param '$attribute' for subscriber uuid ".$c->qs($c->stash->{subscriber}->uuid),
desc=>$c->loc('Invalid fax setting.'),
);
NGCP::Panel::Utils::Navigation::back_or($c,
@ -3692,7 +3692,7 @@ sub edit_mail_to_fax :Chained('base') :PathPart('preferences/mail_to_fax/edit')
# default
NGCP::Panel::Utils::Message::error(
c=>$c,
log=>"trying to set invalid fax param '$attribute' for subscriber uuid ".$c->stash->{subscriber}->uuid,
log=>"trying to set invalid fax param '$attribute' for subscriber uuid ".$c->qs($c->stash->{subscriber}->uuid),
desc=>$c->loc('Invalid mailtofax setting.'),
);
NGCP::Panel::Utils::Navigation::back_or($c,
@ -4031,7 +4031,7 @@ sub voicemail :Chained('master') :PathPart('voicemail') :CaptureArgs(1) {
unless($rs->first){
NGCP::Panel::Utils::Message::error(
c=>$c,
log=>"no such voicemail file with id '$vm_id' for uuid ".$c->stash->{subscriber}->uuid,
log=>"no such voicemail file with id '$vm_id' for uuid ".$c->qs($c->stash->{subscriber}->uuid),
desc=>$c->loc('No such voicemail file.'),
);
NGCP::Panel::Utils::Navigation::back_or($c,
@ -4105,7 +4105,7 @@ sub recording :Chained('master') :PathPart('recording') :CaptureArgs(1) {
unless($rs->first){
NGCP::Panel::Utils::Message::error(
c=>$c,
log=>"no such recording with id '$rec_id' for uuid ".$c->stash->{subscriber}->uuid,
log=>"no such recording with id '$rec_id' for uuid ".$c->qs($c->stash->{subscriber}->uuid),
desc=>$c->loc('No such recording'),
);
NGCP::Panel::Utils::Navigation::back_or($c,
@ -4175,10 +4175,10 @@ sub delete_recording :Chained('recording') :PathPart('delete') :Args(0) {
"Failed to load NGCP::Rating::Inew::SmsSession for sms=%s from=%s to=%s",
$session_id,$caller,$callee
);
$c->log->error(sprintf("Failed to load NGCP::Rating::Inew::SmsSession for sms=%s from=%s to=%s",$session_id,$c->qs($caller),$c->qs($callee)));
$session->{status}='failed';
$session->{reason}=
sprintf'failed to init sms session sid=%s from=%s to=%s',
$session_id,$caller,$callee;
$session_id,$c->qs($caller),$c->qs($callee);
return;
}
my$amqr=NGCP::Rating::Inew::SmsSession::init(
@ -234,14 +231,11 @@ sub init_prepaid_billing {
$c->config->{libinewrate}->{openwire_uri},
);
unless($amqr){
$c->log->error(sprintf
"Failed to create sms amqr handle for sms sid=%s from=%s to=%s",
$session_id,$caller,$callee
);
$c->log->error(sprintf("Failed to create sms amqr handle for sms sid=%s from=%s to=%s",$session_id,$c->qs($caller),$c->qs($callee)));
$session->{status}='failed';
$session->{reason}=
sprintf'failed to create sms session sid=%s from=%s to=%s',
$session_id,$caller,$callee;
$session_id,$c->qs($caller),$c->qs($callee);
return;
}
$session->{amqr_h}=$amqr;
@ -261,19 +255,19 @@ sub init_prepaid_billing {
});
if(notdefined$sessor$sess==-1){
$c->log->error("Failed to create sms rating session from $caller to $callee with session id $this_session_id");
$c->log->error("Failed to create sms rating session from " .$c->qs($caller).' to ' .$c->qs($callee)." with session id $this_session_id");
$session->{status}='failed';
$session->{reason}='failed to create sms session';
last;
}elsif($sess==0){
$c->log->error("Remote denied sms rating session from $caller to $callee with session id $this_session_id (subscriber=inactive)");
$c->log->error("Remote denied sms rating session from " .$c->qs($caller).' to ' .$c->qs($callee)." with session id $this_session_id (subscriber=inactive)");