[ 
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)

Reply via email to