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