continuum-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin van den Bemt <mll...@mvdb.net>
Subject Re: problem with adding https M2 pom.xml
Date Fri, 15 Dec 2006 15:25:55 GMT
I never had any problems using https (+authentication) and the reason is probably that I switched
continuum to using wagon (mainly because I needed to use wagon-scm for adding projects). Since
I
also incorporated groups and a "custom" security model, I don't think a patch with the changes
will
be useful..

The only problem occurs with not validated certificates, but we work around that problem by
a
setting + a customized wagon-httplightweight.

Mvgr,
Martin

Emmanuel Venisse wrote:
> I'd prefer to migrate to wagon instaed of modify MungedHttpURL
> 
> Emmanuel
> 
> Jesse McConnell a écrit :
>> Are you interested in tracking this down into the actual plexus code
>> and patching it there to work for your case?  its been a year since I
>> patched that up to work with a cert protected https svn repo I was
>> working with at the time and it appears that you have something else
>> going on here.
>>
>> pretty sure this would be in the MungedUrl in plexus-formica
>>
>> jesse
>>
>> On 12/13/06, Robert Dale <robert.dale@duke.edu> wrote:
>>> When I try to add a new Maven 2 project using https in the M2 POM Url,
>>> I get the following error:
>>>
>>>     Continuum Error
>>>     Could not download https://mydomain.org/repos/project/trunk/pom.xml:
>>>     Server returned HTTP response code: 401 for URL:
>>> https://mydomain.org/repos/project/trunk/pom.xml
>>>     Check the logs for more details.
>>>
>>> However, in reality, it does work!  Mostly...
>>>
>>> So I turned on javax.net debugging and discovered that the underlying
>>> mechanism
>>> actually connects 3 times successfully before making a final attempt not
>>> using Auth Basic which causes it to fail.
>>>
>>> The other part of it is that when it does connect successfully, for some
>>> reason it closes the connection prematurely
>>> which is probably why it thinks those attempts failed.
>>>
>>> You can see here one of the semi-successfull connects, but with the
>>> premature socket closing:
>>>
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | SocketListener0-1, READ: TLSv1
>>> Application Data, length = 242
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | Padded plaintext after
>>> DECRYPTION:  len = 242
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | 0000: 48 54 54 50 2F 31 2E
>>> 31 20
>>> 32 30 30 20 4F 4B 0D  HTTP/1.1 200 OK.
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | 0010: 0A 44 61 74 65 3A 20
>>> 57 65
>>> 64 2C 20 31 33 20 44  .Date: Wed, 13 D
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | 0020: 65 63 20 32 30 30 36
>>> 20 31
>>> 34 3A 34 37 3A 33 33  ec 2006 14:47:33
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | 0030: 20 47 4D 54 0D 0A 53
>>> 65 72
>>> 76 65 72 3A 20 41 70   GMT..Server: Ap
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | 0040: 61 63 68 65 2F 32 2E
>>> 30 2E
>>> 35 32 20 28 52 65 64  ache/2.0.52 (Red
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | 0050: 20 48 61 74 29 0D 0A
>>> 45 54
>>> 61 67 3A 20 22 32 36   Hat)..ETag: "26
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | 0060: 34 34 2F 2F 52 53 53
>>> 2F 74
>>> 72 75 6E 6B 2F 70 6F  44//xxx/trunk/po
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | 0070: 6D 2E 78 6D 6C 22 0D
>>> 0A 41
>>> 63 63 65 70 74 2D 52  m.xml"..Accept-R
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | 0080: 61 6E 67 65 73 3A 20
>>> 62 79
>>> 74 65 73 0D 0A 43 6F  anges: bytes..Co
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | 0090: 6E 74 65 6E 74 2D 4C
>>> 65 6E
>>> 67 74 68 3A 20 31 34  ntent-Length: 14
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | 00A0: 38 33 0D 0A 43 6F 6E
>>> 6E 65
>>> 63 74 69 6F 6E 3A 20  83..Connection:
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | 00B0: 63 6C 6F 73 65 0D 0A
>>> 43 6F
>>> 6E 74 65 6E 74 2D 54  close..Content-T
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | 00C0: 79 70 65 3A 20 74 65
>>> 78 74
>>> 2F 70 6C 61 69 6E 3B  ype: text/plain;
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | 00D0: 20 63 68 61 72 73 65
>>> 74 3D
>>> 55 54 46 2D 38 0D 0A   charset=UTF-8..
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | 00E0: 0D 0A 80 5E 1A D7 1C
>>> 1B B6
>>> 0F E5 63 76 1D 27 D9  ...^.......cv.'.
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | 00F0: 3B 3B     ;;
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | SocketListener0-1, called
>>> close()
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | SocketListener0-1, called
>>> closeInternal(true)
>>> INFO   | jvm 1    | 2006/12/13 10:09:41 | SocketListener0-1, SEND TLSv1
>>> ALERT:  warning, description = close_notify
>>>
>>> I wrote a piece of code which does a simple connect and retrieves the
>>> file.  It does so successfully and the header looks
>>> the same as the above with the exception that it actually downloads the
>>> file.  Both use the same keystore, same url,
>>> same user, same password.
>>>
>>> import java.io.BufferedReader;
>>> import java.io.IOException;
>>> import java.io.InputStream;
>>> import java.io.InputStreamReader;
>>> import java.net.URL;
>>> import java.net.URLConnection;
>>>
>>> public class Foo {
>>>
>>>         public static String readString(final InputStream is) throws
>>> IOException {
>>>                 String tmpStr;
>>>                 final StringBuilder sb = new StringBuilder();
>>>                 final BufferedReader reader = new BufferedReader(new
>>> InputStreamReader(is));
>>>                 while ((tmpStr = reader.readLine()) != null) {
>>>                         sb.append(tmpStr).append('\n');
>>>                 }
>>>                 return sb.toString();
>>>         }
>>>
>>>         public static void main(String[] args) throws Exception {
>>>                 URL url = new URL(
>>> "https://mydomain.org/repos/project/trunk/pom.xml");
>>>                 URLConnection conn = url.openConnection();
>>>                 String encoding = new sun.misc.BASE64Encoder().encode(
>>> "user:pass".getBytes());
>>>                 conn.setRequestProperty("Authorization", "Basic " +
>>> encoding);
>>>                 InputStream istream = conn.getInputStream();
>>>                 String foo = readString(istream);
>>>                 istream.close();
>>>                 System.out.println(foo);
>>>
>>>         }
>>> }
>>>
>>> -- 
>>> Robert Dale
>>>
>>
>>
> 
> 
> 

Mime
View raw message