Re: artifact retrieval, mercury, and jetty-client

2008-07-21 Thread Jason van Zyl

Why is this particular API of interest?

Trying to the container security inside G to grab plugins from a  
remote repository?


On 21-Jul-08, at 2:39 PM, David Jencks wrote:



On Jul 18, 2008, at 12:28 PM, Jesse McConnell wrote:


djencks,

I am not sure what the client side of a jaspi api would look like,  
can

you give an example of what it would be doing?


The basic idea is that, in a client, you'd be calling a  
authentication context before sending the message to secure it and  
after receiving the response to validate it.  The server can conduct  
a conversation with the "validate response" part for stuff like  
basic auth challenges, form auth redirects, etc.


The specific methods in ClientAuthContext from the jaspi spec are

   AuthStatus secureRequest(MessageInfo messageInfo, Subject  
clientSubject) throws AuthException;


   AuthStatus validateResponse(MessageInfo messageInfo, Subject  
clientSubject, Subject serviceSubject) throws AuthException;


The MessageInfo object has the request and response messages  
accessible inside it.


This might not be the ideal list to discuss this in more detail :-)

thanks
david jencks




from my perspective what we need to wire up in mercury right now is
some generic security api that something like maven can inject with
the goop in setting.xml meshed with repositories tags so it can  
select

the right 'security realm' based on hostname, returned realm, or
whatever the case may be.

I know you have done a mess of jaspi work on a jetty trunk  
branch...am

interested in how that maps back to client type stuff :)

client side is a pain

jesse

On Fri, Jul 18, 2008 at 2:16 PM, David Jencks  
<[EMAIL PROTECTED]> wrote:


On Jul 17, 2008, at 4:26 PM, Jesse McConnell wrote:


hey all,

I have been working on the jetty-client in the jetty project over  
in

codehaus which is the library mercury uses that is doing the
asynchronous retrieval and deployment of artifacts.  Greg Wilkins  
and
I have recently been increasing the functionality of the jetty- 
client

and we are getting to the point where we need to do a bit more
integration with mercury, namely in the area of security,
authentication specifically.  We have ssl support and cursory  
webdav

support for creating directories on put operations if webdav is
enabled server side in places and all of this shares the same async
nio framework that jetty uses very successfully for scaling to very
large numbers of connections.  It is pretty nice and small as well.

Anyway, the security api in jetty-client is still open and somewhat
malleable if we add some additional options, but it ought to work  
for
what is needed here.  The specific integration bit needed right  
now in

mercury is in mapping username/password credentials to the relevant
host.  In jetty-client we have this broken out by the security  
realm
that the target host replies with in the authentication request  
header
but that doesn't necessarily apply in maven-land.  I am not sure  
what
sort of api we ought to have in mercury for this, but the jetty- 
client
allows for extending a couple of interfaces which allow you to  
setup
your own security realm and mapping solution.  It should also be  
able

to support simple things like adding a realm that would prompt the
user for username/password and then cache that for future use by  
other

connections in that batch.


I hope this interface can be made JASPI friendly.  There's no  
explicit http
client profile in jaspi and presumably the client side  
authentication has
the same kinds of problems as the server side authentication but I  
suspect
that we can work something out that is both efficient and spec  
compatible.


thanks
david jencks




Anyway, I am interested in hearing how folks want to address this  
in
mercury so any thoughts are more then welcome.  I am not sure how  
much
mercury has been discussed on the dev list up to this point but I  
am
assuming that most of you have an inkling of what the goal of  
mercury

is...if not ask away and someone will chime in :)

cheers,
jesse

--
jesse mcconnell
[EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






--
jesse mcconnell
[EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Thanks,

Jason

--
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
--

Re: artifact retrieval, mercury, and jetty-client

2008-07-21 Thread David Jencks


On Jul 18, 2008, at 12:28 PM, Jesse McConnell wrote:


djencks,

I am not sure what the client side of a jaspi api would look like, can
you give an example of what it would be doing?


The basic idea is that, in a client, you'd be calling a authentication  
context before sending the message to secure it and after receiving  
the response to validate it.  The server can conduct a conversation  
with the "validate response" part for stuff like basic auth  
challenges, form auth redirects, etc.


The specific methods in ClientAuthContext from the jaspi spec are

AuthStatus secureRequest(MessageInfo messageInfo, Subject  
clientSubject) throws AuthException;


AuthStatus validateResponse(MessageInfo messageInfo, Subject  
clientSubject, Subject serviceSubject) throws AuthException;


The MessageInfo object has the request and response messages  
accessible inside it.


This might not be the ideal list to discuss this in more detail :-)

thanks
david jencks




from my perspective what we need to wire up in mercury right now is
some generic security api that something like maven can inject with
the goop in setting.xml meshed with repositories tags so it can select
the right 'security realm' based on hostname, returned realm, or
whatever the case may be.

I know you have done a mess of jaspi work on a jetty trunk branch...am
interested in how that maps back to client type stuff :)

client side is a pain

jesse

On Fri, Jul 18, 2008 at 2:16 PM, David Jencks  
<[EMAIL PROTECTED]> wrote:


On Jul 17, 2008, at 4:26 PM, Jesse McConnell wrote:


hey all,

I have been working on the jetty-client in the jetty project over in
codehaus which is the library mercury uses that is doing the
asynchronous retrieval and deployment of artifacts.  Greg Wilkins  
and
I have recently been increasing the functionality of the jetty- 
client

and we are getting to the point where we need to do a bit more
integration with mercury, namely in the area of security,
authentication specifically.  We have ssl support and cursory webdav
support for creating directories on put operations if webdav is
enabled server side in places and all of this shares the same async
nio framework that jetty uses very successfully for scaling to very
large numbers of connections.  It is pretty nice and small as well.

Anyway, the security api in jetty-client is still open and somewhat
malleable if we add some additional options, but it ought to work  
for
what is needed here.  The specific integration bit needed right  
now in

mercury is in mapping username/password credentials to the relevant
host.  In jetty-client we have this broken out by the security realm
that the target host replies with in the authentication request  
header
but that doesn't necessarily apply in maven-land.  I am not sure  
what
sort of api we ought to have in mercury for this, but the jetty- 
client

allows for extending a couple of interfaces which allow you to setup
your own security realm and mapping solution.  It should also be  
able

to support simple things like adding a realm that would prompt the
user for username/password and then cache that for future use by  
other

connections in that batch.


I hope this interface can be made JASPI friendly.  There's no  
explicit http
client profile in jaspi and presumably the client side  
authentication has
the same kinds of problems as the server side authentication but I  
suspect
that we can work something out that is both efficient and spec  
compatible.


thanks
david jencks




Anyway, I am interested in hearing how folks want to address this in
mercury so any thoughts are more then welcome.  I am not sure how  
much

mercury has been discussed on the dev list up to this point but I am
assuming that most of you have an inkling of what the goal of  
mercury

is...if not ask away and someone will chime in :)

cheers,
jesse

--
jesse mcconnell
[EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






--
jesse mcconnell
[EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: artifact retrieval, mercury, and jetty-client

2008-07-19 Thread Oleg Gusakov

Jesse,

From maven side - I know you've gone through that, but just to 
reiterate: we have a server security configuration which by default 
includes either name/password or a private key file with a password for it.


We can probably enhance that to include realm name, or can use server id 
for the realm, which is less flexible.


The Binding - namely url there - does not have any links to server id, 
but I can get that mapping from a remote repository descriptor and feed 
to jetty client.


The overall interaction seem to be:

   * mercury reads all remote repository descriptors and their credentials
   * mercury feeds all the repositories and credentials to jetty client
 when instantiating it
   * you add repository id to the Binding
   * mercury always fills in the repository id in all the bindings, so
 that jetty client knows which credentials to use
   * if binding's repository is null - assume that repository is not
 protected

What do you think?

Thanks,
Oleg

Jesse McConnell wrote:

djencks,

I am not sure what the client side of a jaspi api would look like, can
you give an example of what it would be doing?

from my perspective what we need to wire up in mercury right now is
some generic security api that something like maven can inject with
the goop in setting.xml meshed with repositories tags so it can select
the right 'security realm' based on hostname, returned realm, or
whatever the case may be.

I know you have done a mess of jaspi work on a jetty trunk branch...am
interested in how that maps back to client type stuff :)

client side is a pain

jesse

On Fri, Jul 18, 2008 at 2:16 PM, David Jencks <[EMAIL PROTECTED]> wrote:
  

On Jul 17, 2008, at 4:26 PM, Jesse McConnell wrote:



hey all,

I have been working on the jetty-client in the jetty project over in
codehaus which is the library mercury uses that is doing the
asynchronous retrieval and deployment of artifacts.  Greg Wilkins and
I have recently been increasing the functionality of the jetty-client
and we are getting to the point where we need to do a bit more
integration with mercury, namely in the area of security,
authentication specifically.  We have ssl support and cursory webdav
support for creating directories on put operations if webdav is
enabled server side in places and all of this shares the same async
nio framework that jetty uses very successfully for scaling to very
large numbers of connections.  It is pretty nice and small as well.

Anyway, the security api in jetty-client is still open and somewhat
malleable if we add some additional options, but it ought to work for
what is needed here.  The specific integration bit needed right now in
mercury is in mapping username/password credentials to the relevant
host.  In jetty-client we have this broken out by the security realm
that the target host replies with in the authentication request header
but that doesn't necessarily apply in maven-land.  I am not sure what
sort of api we ought to have in mercury for this, but the jetty-client
allows for extending a couple of interfaces which allow you to setup
your own security realm and mapping solution.  It should also be able
to support simple things like adding a realm that would prompt the
user for username/password and then cache that for future use by other
connections in that batch.
  

I hope this interface can be made JASPI friendly.  There's no explicit http
client profile in jaspi and presumably the client side authentication has
the same kinds of problems as the server side authentication but I suspect
that we can work something out that is both efficient and spec compatible.

thanks
david jencks



Anyway, I am interested in hearing how folks want to address this in
mercury so any thoughts are more then welcome.  I am not sure how much
mercury has been discussed on the dev list up to this point but I am
assuming that most of you have an inkling of what the goal of mercury
is...if not ask away and someone will chime in :)

cheers,
jesse

--
jesse mcconnell
[EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]







  


Re: artifact retrieval, mercury, and jetty-client

2008-07-18 Thread Jesse McConnell
djencks,

I am not sure what the client side of a jaspi api would look like, can
you give an example of what it would be doing?

from my perspective what we need to wire up in mercury right now is
some generic security api that something like maven can inject with
the goop in setting.xml meshed with repositories tags so it can select
the right 'security realm' based on hostname, returned realm, or
whatever the case may be.

I know you have done a mess of jaspi work on a jetty trunk branch...am
interested in how that maps back to client type stuff :)

client side is a pain

jesse

On Fri, Jul 18, 2008 at 2:16 PM, David Jencks <[EMAIL PROTECTED]> wrote:
>
> On Jul 17, 2008, at 4:26 PM, Jesse McConnell wrote:
>
>> hey all,
>>
>> I have been working on the jetty-client in the jetty project over in
>> codehaus which is the library mercury uses that is doing the
>> asynchronous retrieval and deployment of artifacts.  Greg Wilkins and
>> I have recently been increasing the functionality of the jetty-client
>> and we are getting to the point where we need to do a bit more
>> integration with mercury, namely in the area of security,
>> authentication specifically.  We have ssl support and cursory webdav
>> support for creating directories on put operations if webdav is
>> enabled server side in places and all of this shares the same async
>> nio framework that jetty uses very successfully for scaling to very
>> large numbers of connections.  It is pretty nice and small as well.
>>
>> Anyway, the security api in jetty-client is still open and somewhat
>> malleable if we add some additional options, but it ought to work for
>> what is needed here.  The specific integration bit needed right now in
>> mercury is in mapping username/password credentials to the relevant
>> host.  In jetty-client we have this broken out by the security realm
>> that the target host replies with in the authentication request header
>> but that doesn't necessarily apply in maven-land.  I am not sure what
>> sort of api we ought to have in mercury for this, but the jetty-client
>> allows for extending a couple of interfaces which allow you to setup
>> your own security realm and mapping solution.  It should also be able
>> to support simple things like adding a realm that would prompt the
>> user for username/password and then cache that for future use by other
>> connections in that batch.
>
> I hope this interface can be made JASPI friendly.  There's no explicit http
> client profile in jaspi and presumably the client side authentication has
> the same kinds of problems as the server side authentication but I suspect
> that we can work something out that is both efficient and spec compatible.
>
> thanks
> david jencks
>
>>
>>
>> Anyway, I am interested in hearing how folks want to address this in
>> mercury so any thoughts are more then welcome.  I am not sure how much
>> mercury has been discussed on the dev list up to this point but I am
>> assuming that most of you have an inkling of what the goal of mercury
>> is...if not ask away and someone will chime in :)
>>
>> cheers,
>> jesse
>>
>> --
>> jesse mcconnell
>> [EMAIL PROTECTED]
>>
>> -
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



-- 
jesse mcconnell
[EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: artifact retrieval, mercury, and jetty-client

2008-07-18 Thread David Jencks


On Jul 17, 2008, at 4:26 PM, Jesse McConnell wrote:


hey all,

I have been working on the jetty-client in the jetty project over in
codehaus which is the library mercury uses that is doing the
asynchronous retrieval and deployment of artifacts.  Greg Wilkins and
I have recently been increasing the functionality of the jetty-client
and we are getting to the point where we need to do a bit more
integration with mercury, namely in the area of security,
authentication specifically.  We have ssl support and cursory webdav
support for creating directories on put operations if webdav is
enabled server side in places and all of this shares the same async
nio framework that jetty uses very successfully for scaling to very
large numbers of connections.  It is pretty nice and small as well.

Anyway, the security api in jetty-client is still open and somewhat
malleable if we add some additional options, but it ought to work for
what is needed here.  The specific integration bit needed right now in
mercury is in mapping username/password credentials to the relevant
host.  In jetty-client we have this broken out by the security realm
that the target host replies with in the authentication request header
but that doesn't necessarily apply in maven-land.  I am not sure what
sort of api we ought to have in mercury for this, but the jetty-client
allows for extending a couple of interfaces which allow you to setup
your own security realm and mapping solution.  It should also be able
to support simple things like adding a realm that would prompt the
user for username/password and then cache that for future use by other
connections in that batch.


I hope this interface can be made JASPI friendly.  There's no explicit  
http client profile in jaspi and presumably the client side  
authentication has the same kinds of problems as the server side  
authentication but I suspect that we can work something out that is  
both efficient and spec compatible.


thanks
david jencks




Anyway, I am interested in hearing how folks want to address this in
mercury so any thoughts are more then welcome.  I am not sure how much
mercury has been discussed on the dev list up to this point but I am
assuming that most of you have an inkling of what the goal of mercury
is...if not ask away and someone will chime in :)

cheers,
jesse

--
jesse mcconnell
[EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: artifact retrieval, mercury, and jetty-client

2008-07-17 Thread Brett Porter


On 18/07/2008, at 10:11 AM, Jason van Zyl wrote:

I'll sync up with Oleg and takes the notes out of SVN and put them  
in a proposal. At this point Greg, Jan, Jesse, myself, Oleg and soon  
Shane will have their fingers in the pie. This is a pretty  
significant effort and should be documented. It's mostly the  
processes and algorithms that need to be vetted.


Yes, I think that's essential to getting others involved. The previous  
discussion about the SAT solver was a helpful starting point, and I  
like the direction it is taking, but more info needs to be spelled out.


Here are my current questions I'd like to see addressed by it:
- spell out the problems in the current artifact mechanism already  
solved by it (eg, conflict resolution, reduced metadata consultation,  
deterministic?)

- what infrastructure/metadata changes it will require server side
- how/if deployment will be handled or delegated wagon
- how it's going to be integrated into Maven proper

If I can see a path to adoption for it I'm more likely to get involved  
myself.



On 17-Jul-08, at 7:26 PM, Jesse McConnell wrote:


Anyway, I am interested in hearing how folks want to address this in
mercury so any thoughts are more then welcome.  I am not sure how  
much

mercury has been discussed on the dev list up to this point but I am
assuming that most of you have an inkling of what the goal of mercury
is...if not ask away and someone will chime in :)


Thanks for getting the ball rolling Jesse!

Cheers,
Brett

--
Brett Porter
[EMAIL PROTECTED]
http://blogs.exist.com/bporter/


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: artifact retrieval, mercury, and jetty-client

2008-07-17 Thread Jason van Zyl
I'll sync up with Oleg and takes the notes out of SVN and put them in  
a proposal. At this point Greg, Jan, Jesse, myself, Oleg and soon  
Shane will have their fingers in the pie. This is a pretty significant  
effort and should be documented. It's mostly the processes and  
algorithms that need to be vetted.


On 17-Jul-08, at 7:26 PM, Jesse McConnell wrote:


hey all,

I have been working on the jetty-client in the jetty project over in
codehaus which is the library mercury uses that is doing the
asynchronous retrieval and deployment of artifacts.  Greg Wilkins and
I have recently been increasing the functionality of the jetty-client
and we are getting to the point where we need to do a bit more
integration with mercury, namely in the area of security,
authentication specifically.  We have ssl support and cursory webdav
support for creating directories on put operations if webdav is
enabled server side in places and all of this shares the same async
nio framework that jetty uses very successfully for scaling to very
large numbers of connections.  It is pretty nice and small as well.

Anyway, the security api in jetty-client is still open and somewhat
malleable if we add some additional options, but it ought to work for
what is needed here.  The specific integration bit needed right now in
mercury is in mapping username/password credentials to the relevant
host.  In jetty-client we have this broken out by the security realm
that the target host replies with in the authentication request header
but that doesn't necessarily apply in maven-land.  I am not sure what
sort of api we ought to have in mercury for this, but the jetty-client
allows for extending a couple of interfaces which allow you to setup
your own security realm and mapping solution.  It should also be able
to support simple things like adding a realm that would prompt the
user for username/password and then cache that for future use by other
connections in that batch.

Anyway, I am interested in hearing how folks want to address this in
mercury so any thoughts are more then welcome.  I am not sure how much
mercury has been discussed on the dev list up to this point but I am
assuming that most of you have an inkling of what the goal of mercury
is...if not ask away and someone will chime in :)

cheers,
jesse

--
jesse mcconnell
[EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Thanks,

Jason

--
Jason van Zyl
Founder,  Apache Maven
jason at sonatype dot com
--

happiness is like a butterfly: the more you chase it, the more it will
elude you, but if you turn your attention to other things, it will come
and sit softly on your shoulder ...

 -- Thoreau


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]