apache / apache/maven-scm

[SCM-909] SvnScmProviderRepository#parseUrl() does not comply with RFC 3986 and RFC 8089

Open
#1,140 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
104
Forks
189
Avg merge
17h 46m
Merged PRs (30d)
6

Description

**[Michael Osipov](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=michael-o)** opened **[SCM-909](https://issues.apache.org/jira/browse/SCM-909?redirect=false)** and commented

This issue was been found on one of Jenkins slaves. Consider the following path: `F:\jenkins\jenkins-slave\workspace\maven-box_maven-scm_SCM-906-3AXCXWOA5KAAL37TCEKGJUQCHVU3HMOGCVV63JP76C24C3X6DHOA@2\m\maven-scm-providers\maven-scm-providers-git\maven-scm-provider-gitexe\target`. THe aforementioned class outputs:

```
file:///F:/jenkins/jenkins-slave/workspace/maven-box_maven-scm_SCM-906-3AXCXWOA5KAAL37TCEKGJUQCHVU3HMOGCVV63JP76C24C3X6DHOA@2/m/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/target
file://2/m/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/target
```

The parse logic incorrectly assumes that the last `@` is for the user info. According to RFC 8089 a file URL may contain this information, but our parser would still fail becuase it uses `indexOf`. It must stop searching to the first slash.

Note: the example is from the GitExe provider, but it also applies to SvnExe.

---

**Affects:** 1.10.0

**Sub-tasks:**
- [SCM-910](https://issues.apache.org/jira/browse/SCM-910) SvnScmProviderRepository#parseUrl(): skip parsing of user info for file:// URLs

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with SvnScmProviderRepository#parseUrl() and trace the corresponding GitExe and SvnExe provider usage. Reproduce the Windows file:// example, then verify that parsing follows RFC 3986 and RFC 8089 without treating @ characters in the path as user information.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.