Files
spring-integration/spring-integration-smb/src
Jelle Smits 8406fd7e4c GH-9794: Encode SMB domain, username & password before SmbFile
Fixes: #9794
Issue link: https://github.com/spring-projects/spring-integration/issues/9794

The `SmbConfig.rawUrl()` method doesn't apply any URL encoding,
resulting in parts of the `domainUserPass` that may contain a `@` character to break
the URL logic in regard to determining the hostname.

* Modify `SmbConfig.getDomainUserPass(_includePassword)` to conditionally encode the variables.
Makes sure to encode the individual parts to not undesirably encode the `;` and `:` characters, breaking other logic.
* Modify `SmbConfig.rawUrl(_includePassword)` and `SmbConfig.createUri(_includePassword)`
to call the modified method with the correct `_urlEncode` variable

Signed-off-by: Jelle Smits <110663902+smitsjelle@users.noreply.github.com>

[artem.bilan@broadcom.com: some code cleanup]

* Add author to the affected classes
* Remove redundant explicit exceptions list from the `SmbMessageHistoryTests`

Signed-off-by: Artem Bilan <artem.bilan@broadcom.com>
(cherry picked from commit fcd90a905e)
2025-01-28 21:20:22 +00:00
..