Skip to content

Commit e1f9b5f

Browse files
authored
fix: Do not overwrite user ip if set manually in ASP.NET sdk (#4513)
1 parent 1a536c7 commit e1f9b5f

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## Unreleased
4+
5+
### Fixes
6+
7+
- Do not overwrite user IP if it is set manually in ASP.NET sdk ([#4513](https://github.com/getsentry/sentry-dotnet/pull/4513))
8+
39
## 5.15.0
410

511
### Features

src/Sentry.AspNet/Internal/SystemWebRequestEventProcessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public SystemWebRequestEventProcessor(IRequestPayloadExtractor payloadExtractor,
7373
@event.User.Username = null;
7474
}
7575

76-
@event.User.IpAddress = context.Request.UserHostAddress;
76+
@event.User.IpAddress ??= context.Request.UserHostAddress;
7777
if (context.User.Identity is { } identity)
7878
{
7979
@event.User.Username = identity.Name;

test/Sentry.AspNet.Tests/Internal/SystemWebRequestEventProcessorTests.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,21 @@ public void Process_NoBodyExtracted_NoRequestData()
7070
Assert.Same(expected, actual);
7171
Assert.Null(expected.Request.Data);
7272
}
73+
74+
[Fact]
75+
public void Process_PresetUserIP_NotOverwritten()
76+
{
77+
const string userIp = "192.0.0.1";
78+
var evt = new SentryEvent();
79+
evt.User.IpAddress = userIp;
80+
81+
Context = HttpContextBuilder.Build();
82+
// Ensure user is not null
83+
Context.User = new GenericPrincipal(new GenericIdentity("TestUser"), null);
84+
_fixture.SentryOptions.SendDefaultPii = true;
85+
var sut = _fixture.GetSut();
86+
87+
var processedEvt = sut.Process(evt);
88+
Assert.Equal(userIp, processedEvt?.User.IpAddress);
89+
}
7390
}

0 commit comments

Comments
 (0)