[
https://issues.apache.org/jira/browse/WAGON-538?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16682974#comment-16682974
]
Aleksander Gjermundsen commented on WAGON-538:
----------------------------------------------
I had not considered your comment in WAGON-487. That would accomplish what I
need to do, if I could get it to work.
I tried the following in settings.xml, but it did not make a difference to the
header that was sent:
{code}
<server>
<id>nexus</id>
<username>userØ</username>
<password>userØ</password>
<configuration>
<httpConfiguration>
<all>
<params>
<property>
<name>http.auth.credential-charset</name>
<value>UTF-8</value>
</property>
</params>
</all>
</httpConfiguration>
</configuration>
</server>
{code}
Looking at the documentation for HttpClient, I can see that property mentioned
here for version 4.2:
https://hc.apache.org/httpcomponents-client-4.2.x/tutorial/html/authentication.html
But then for version 4.5 that Wagon uses it is no longer mentioned (or any
other properties for that matter):
https://hc.apache.org/httpcomponents-client-4.5.x/tutorial/html/authentication.html
I based my fix on this Stackoverflow post:
https://stackoverflow.com/questions/27955067/use-of-non-ascii-credentials-not-working-in-httpclient-4-3-x
It suggests that the encoding scheme no longer can be configured globally? Not
sure if this is the Oleg that is one of the core commiters on HttpClient.
> Basic authentication fails if the password contains non-ascii characters
> ------------------------------------------------------------------------
>
> Key: WAGON-538
> URL: https://issues.apache.org/jira/browse/WAGON-538
> Project: Maven Wagon
> Issue Type: Bug
> Reporter: Aleksander Gjermundsen
> Priority: Major
>
> If the username and/or password used to authenticate to Nexus contains
> non-ascii characters, the authentication fails with an access denied error.
> After using Wireshark to investigate the headers being sent (in my case "Ø",
> any non-ascii characters are replaced with "?".
> To test, I have used the following configuration:
> {code:java}
> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
> http://maven.apache.org/xsd/settings-1.0.0.xsd">
> ...
> <servers>
> <server>
> <id>artifactory</id>
> <username>userØ</username>
> <password>userØ</password>
> </server>
> </servers>
> ...
> <mirrors>
> <mirror>
> <id>nexus</id>
> <mirrorOf>*</mirrorOf>
> <name>Local Nexus</name>
> <url>http://localhost:8081/repository/maven-public</url>
> </mirror>
> </mirrors>
> ...
> </settings>{code}
> The settings.xml file is saved using UTF-8 encoding and it appears that Maven
> reads the username and passwords correctly into strings, but Apache
> HttpClient do not encode the UTF-8 characters when encoding them into base64.
> I did a quick patch of Wagon to make it work for my use case, where
> HttpClient is configured to encode as UTF-8. As is mentioned in MNG-5917, it
> is not completely clear from the standards how these characters are supposed
> to be handled, but on my system both wget and the Chrome web browser encode
> the characters the same way as after my patch and are able to download files
> from Nexus.
> Since Artifactory was used in MNG-5917, I also tested against that, but in
> contrast to Maven it was not able to decode the username and password
> correctly, however it would be broken without the patch anyway.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)