[SCM-909] SvnScmProviderRepository#parseUrl() does not comply with RFC 3986 and RFC 8089
- 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