10000 Include 'user' object in sanitize processing by erkkah · Pull Request #1237 · getsentry/raven-python · GitHub
[go: up one dir, main page]

Skip to content
This repository was archived by the owner on Oct 23, 2023. It is now read-only.

Include 'user' object in sanitize processing #1237

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions raven/processors.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ def process(self, data, **kwargs):
if 'extra' in data:
data['extra'] = self.filter_extra(data['extra'])

if 'user' in data:
data['user'] = self.filter_user(data['user'])

return data

def filter_stacktrace(self, data):
Expand All @@ -49,6 +52,9 @@ def filter_http(self, data):
def filter_extra(self, data):
return data

def filter_user(self, data):
return data


class RemovePostDataProcessor(Processor):
"""Removes HTTP post data."""
Expand Down Expand Up @@ -134,6 +140,9 @@ def filter_http(self, data):
def filter_extra(self, data):
return varmap(self.sanitize, data)

def filter_user(self, data):
return varmap(self.sanitize, data)

def _sanitize_keyvals(self, keyvals, delimiter):
sanitized_keyvals = []
for keyval in keyvals.split(delimiter):
Expand Down
15 changes: 15 additions & 0 deletions tests/processors/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,13 @@ def get_extra_data():
return data


def get_user_data():
data = get_extra_data()

data['user'] = VARS
return data


class SanitizeKeysProcessorTest(TestCase):

def setUp(self):
Expand Down Expand Up @@ -135,6 +142,14 @@ def test_extra(self):
extra = result['extra']
self._check_vars_sanitized(extra, self.proc.MASK)

def test_user(self):
data = get_user_data()
result = self.proc.process(data)

self.assertTrue('user' in result)
user = result['user']
self._check_vars_sanitized(user, self.proc.MASK)

def test_querystring_as_string(self):
data = get_http_data()
data['request']['query_string'] = 'foo=bar&custom_key1=nope&custom_key2=nope&custom_key3=%7B%27key2%27%3A+%27nope%27%2C+%27key1%27%3A+%27nope%27%7D'
Expand Down
0