Repository: spdx/tools-python

Issue:
Error validating download location with git+ssh URI
When using git URLs to reference packages in npm, the URL often gets normalized to a form like:

```
git+ssh://git@github.com/foo/bar.git#b7e1e0fb20cff47bcca4be90d0c6f83a45e51e9c
```

When using a URL of this form as a `downloadLocation` value, it fails validation due to the `git@` portion of the URL.

Can the URL regex be expanded to allow for the [`userinfo`](https://datatracker.ietf.org/doc/html/rfc2396#section-3.2.2) portion of the URI?

https://github.com/spdx/tools-python/blob/f15a64fdd3c2b889c613997fc35da908a794c607/src/spdx_tools/spdx/validation/uri_validators.py#L10-L12

Discussion:

Patch:
diff --git a/src/spdx_tools/spdx/validation/uri_validators.py b/src/spdx_tools/spdx/validation/uri_validators.py
index d9c23f9..d3a4237 100644
--- a/src/spdx_tools/spdx/validation/uri_validators.py
+++ b/src/spdx_tools/spdx/validation/uri_validators.py
@@ -9,7 +9,8 @@ from uritools import isabsuri, urisplit
 
 url_pattern = (
     "(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/|ssh:\\/\\/|git:\\/\\/|svn:\\/\\/|sftp:"
-    "\\/\\/|ftp:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+){0,100}\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?"
+    "\\/\\/|ftp:\\/\\/)?([\\w\\-.!~*'()%;:&=+$,]+@)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+){0,100}\\.[a-z]{2,5}"
+    "(:[0-9]{1,5})?(\\/.*)?"
 )
 supported_download_repos: str = "(git|hg|svn|bzr)"
 git_pattern = "(git\\+git@[a-zA-Z0-9\\.\\-]+:[a-zA-Z0-9/\\\\.@\\-]+)"


Test patch:
diff --git a/tests/spdx/validation/test_uri_validators.py b/tests/spdx/validation/test_uri_validators.py
index ffe3008..069cb1b 100644
--- a/tests/spdx/validation/test_uri_validators.py
+++ b/tests/spdx/validation/test_uri_validators.py
@@ -34,6 +34,7 @@ def test_invalid_url(input_value):
         "git+https://git.myproject.org/MyProject.git",
         "git+http://git.myproject.org/MyProject",
         "git+ssh://git.myproject.org/MyProject.git",
+        "git+ssh://git@git.myproject.org/MyProject.git",
         "git+git://git.myproject.org/MyProject",
         "git+git@git.myproject.org:MyProject",
         "git://git.myproject.org/MyProject#src/somefile.c",