From 17e0fd22b12cceca8430a16578ec0935a409ea26 Mon Sep 17 00:00:00 2001 From: Lavamancer Date: Wed, 28 Feb 2024 17:24:29 +0100 Subject: [PATCH 1/3] Fixed removal of user info for URLs that contain encoded @ characters --- .../androidx/media3/exoplayer/rtsp/RtspMessageUtil.java | 2 +- .../media3/exoplayer/rtsp/RtspMessageUtilTest.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMessageUtil.java b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMessageUtil.java index bdd6d4cd96..7c5b09fcf6 100644 --- a/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMessageUtil.java +++ b/libraries/exoplayer_rtsp/src/main/java/androidx/media3/exoplayer/rtsp/RtspMessageUtil.java @@ -192,7 +192,7 @@ import java.util.regex.Pattern; } // The Uri must include a "@" if the user info is non-null. - String authorityWithUserInfo = checkNotNull(uri.getAuthority()); + String authorityWithUserInfo = checkNotNull(uri.getEncodedAuthority()); checkArgument(authorityWithUserInfo.contains("@")); String authority = Util.split(authorityWithUserInfo, "@")[1]; return uri.buildUpon().encodedAuthority(authority).build(); diff --git a/libraries/exoplayer_rtsp/src/test/java/androidx/media3/exoplayer/rtsp/RtspMessageUtilTest.java b/libraries/exoplayer_rtsp/src/test/java/androidx/media3/exoplayer/rtsp/RtspMessageUtilTest.java index 7439ea3eeb..02799e8853 100644 --- a/libraries/exoplayer_rtsp/src/test/java/androidx/media3/exoplayer/rtsp/RtspMessageUtilTest.java +++ b/libraries/exoplayer_rtsp/src/test/java/androidx/media3/exoplayer/rtsp/RtspMessageUtilTest.java @@ -449,6 +449,13 @@ public final class RtspMessageUtilTest { .isEqualTo(Uri.parse("rtsp://foo.bar:5050/foo.mkv")); } + @Test + public void removeUserInfo_withEncodedAtInUserInfo() { + Uri uri = Uri.parse("rtsp://user%40name:pass@foo.bar/foo.mkv"); + assertThat(RtspMessageUtil.removeUserInfo(uri)) + .isEqualTo(Uri.parse("rtsp://foo.bar/foo.mkv")); + } + @Test public void parseContentLengthHeader_withContentLengthOver31Bits_succeeds() throws Exception { String line = "Content-Length: 1000000000000000"; From 61343cd75f336800fe92da620fe1863d419b3819 Mon Sep 17 00:00:00 2001 From: microkatz Date: Thu, 12 Sep 2024 04:46:51 +0000 Subject: [PATCH 2/3] Format with google-java-format --- .../androidx/media3/exoplayer/rtsp/RtspMessageUtilTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libraries/exoplayer_rtsp/src/test/java/androidx/media3/exoplayer/rtsp/RtspMessageUtilTest.java b/libraries/exoplayer_rtsp/src/test/java/androidx/media3/exoplayer/rtsp/RtspMessageUtilTest.java index 02799e8853..09d80b5e11 100644 --- a/libraries/exoplayer_rtsp/src/test/java/androidx/media3/exoplayer/rtsp/RtspMessageUtilTest.java +++ b/libraries/exoplayer_rtsp/src/test/java/androidx/media3/exoplayer/rtsp/RtspMessageUtilTest.java @@ -452,8 +452,7 @@ public final class RtspMessageUtilTest { @Test public void removeUserInfo_withEncodedAtInUserInfo() { Uri uri = Uri.parse("rtsp://user%40name:pass@foo.bar/foo.mkv"); - assertThat(RtspMessageUtil.removeUserInfo(uri)) - .isEqualTo(Uri.parse("rtsp://foo.bar/foo.mkv")); + assertThat(RtspMessageUtil.removeUserInfo(uri)).isEqualTo(Uri.parse("rtsp://foo.bar/foo.mkv")); } @Test From 661f3de32599d07349d47ae6345badb69583a8c9 Mon Sep 17 00:00:00 2001 From: microkatz Date: Thu, 12 Sep 2024 04:56:57 +0000 Subject: [PATCH 3/3] Added note in release notes --- RELEASENOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 59250016a7..5562b95151 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -44,6 +44,8 @@ * DASH Extension: * Smooth Streaming Extension: * RTSP Extension: + * Fix user info removal for URLs that contain encoded @ characters + ([#1138](https://github.com/androidx/media/pull/1138)). * Decoder Extensions (FFmpeg, VP9, AV1, etc.): * MIDI extension: * Leanback extension: