On 3/22/06, Vikas <vikas@infravio.com> wrote:
<Vikas>
 
:-(
Did a scratch update, couldn't find the code...
Don't think its in the core either...
The attached file has only snippets..
Was keen to try it out.. Missing all the fun..
 
Saminda can u share the complete code ???

It's a patch. Apply the patch to  your sandbox.

</Vikas>
----- Original Message -----
From: Soumadeep
To: synapse-dev@ws.apache.org
Cc: pzfreo@gmail.com
Sent: Wednesday, March 22, 2006 12:38 PM
Subject: RE: get(String url) issues for getting external resources

Have you put it in the scratch area or are you sharing this code from your dev box??

 

-----Original Message-----
From: Saminda Abeyruwan [mailto:samindaa@gmail.com]
Sent: Wednesday, March 22, 2006 11:50 AM
To: synapse-dev@ws.apache.org
Cc: pzfreo@gmail.com
Subject: Re: get(String url) issues for getting external resources

 

Hello fellow developers,

I've tried to implement on resource handling framework that Paul has proposed earlier. This framework will going to have a big  impact on security and rm mediator setup. I have attached the patch herewith for your review. Please try to play with it and let your concern on the list.

I have attached a test case and a sample ResourceHandler with the notion of REST to demonstrate the code base.

Thank you

Saminda

On 3/2/06, Saminda Abeyruwan < samindaa@gmail.com> wrote:

 

On 3/1/06, Paul Fremantle < pzfreo@gmail.com> wrote:

Saminda

I don't understand the scenario. I would say that was a misconfig and I would expect an exception to be thrown when registering the second RH with the same URI root.


Paul


So there is a one-to-one mapping between RH and uri-root. So the implementation is much more simpler. I got it. Thanks Paul.


Saminda

 

On 3/1/06, Saminda Abeyruwan <samindaa@gmail.com> wrote:


Hi Paul,

I just need to clarify the following small matter.

i hope following scenario is valid. :-)

Assume, we have following synapse.xml for an example
...
<resource type="o.a.s.resources.HttpResource" uri-root=" http://fremantle.org/resources/">
   <property name="http.username">paul</property>
   <property name="http.password">pass</property>
   <property name=" http.proxy">proxy:80</property>
</resource>
<resource type="o.a.s.resources.DatabaseResources" uri-root=" http://fremantle.org/resources/">
   <property/>[1..n] 
</resource>
...
so a mediator can register two resources handlers with the same uri-root. Mediator can nicely say,

OMElement ele = se.getResourceHelper().get(some uri); to get  resources.  But mediator has registered two resources helpers initially, and mediator just need have database connection for this time. As i can see there is no way mediator author can instruct this to ResourceHelper.

Please be kind enough to explain prior.

Thank you

Saminda

 

On 3/1/06, Paul Fremantle <pzfreo@gmail.com> wrote:

How about this implementation of what you are describing.

1) Lets indirect this out of SynEnv:

SynapseEnvironment {
    ResourceHelper getResourceHelper();
}

public interface ResourceHelper {
    OMElement get(String uri); // get a resource
    OMElement get(String uri, ResourceUpdateAware mediator); // get a resource and be notified of changes
    void registerResourceHandler(ResourceHandler rh, String urlRoot);
         // register a handler for a given set of URLs (which share the same root)
    void notifyUpdate(String uriRoot);
         // a resource handler uses this to notify that all resources with that root have changed (Resource Push model)
}

public interface ResourceHandler {
    OMElement get(String uri);

    void setProperty(String name, String value);
    String getProperty(String name);
    String[] getPropertyNames();

    boolean isUpdated(String uriRoot); // used to poll if resource has changed (Pull model)
}

<synapse.xml>

<resource type="o.a.s.resources.HttpResource" uri-root=" http://fremantle.org/resources/">
   <property name="http.username">paul</property>
   <property name="http.password">pass</property>
   <property name=" http.proxy">proxy:80</property>
</resource>

Paul




On 3/1/06, Soumadeep < soumadeep@infravio.com> wrote:

Paul is right, instead of passing an object we could have property files which will have the connection related data. Further, we can generalize the way the get method is implemented, what I mean is we can have an interface like ResourceHandler so that others can implement it as required ... something like LDAPResourceHandler implements ResourceHandler which will have a get method and depending on what was configured the resource will be fetched.

 

We can put the property values in Synapse.xml, so you might end up having multiple resource endpoints with property sets required for making a connection, though we need to think about whether to provide the flexibility in terms of mediators being able to call different ResourceHandlers for a session.

 

-Soumadeep

-----Original Message-----
From: Paul Fremantle [mailto:pzfreo@gmail.com]
Sent: Tuesday, February 28, 2006 5:59 PM
To: synapse-dev@ws.apache.org
Subject: Re: get(String url) issues for getting external resources

I think we should try to separate out the connection properties associated with a URI and the mediators knowledge. So in other words lets try to configure the mediator with the URI and the SynapseEnv with the certs/uids/proxies, etc.

Paul

On 2/28/06, Saminda Abeyruwan <samindaa@gmail.com> wrote:

Hi Devs,

I have written a document on "how to configure mediators get resources via SSL connection".  This will address how to acquire resources from Axis2 repository which is deployed on Tomcat.

Thank you

Saminda

 

On 2/28/06, Saminda Abeyruwan < samindaa@gmail.com> wrote:

On 2/27/06, Soumadeep <soumadeep@infravio.com> wrote:

Hi all,

To fetch external resources using Axis2SynapseEnvironment's get(String url)
wouldn't suffice I think. For secured resources we might have to send the 1)
username/password http token or 2)WS Sec token or maybe 3) certificates or
4) we might also have to deal with enc/decryption.


+1.  The  underline  transport mechanism for SynapesEnvironment.get(String) uses HttpClient from commons-httpclient and it provides full support for HTTP over SSL [1]. Thus, with minimum effort we can integrate it here. But to introduce authentication details we may need to insert  a bean into SynapseEnvironment.get(String) and we may have to change the signature as SynapseEnvironment.get(String url, Object authentication). This will allow to get authentication details from run time.

More importantly, there might be a situation where the resource could be
located in LDAP,Database or a file System.


Yes.  We need to figure this out. IMHO this is can be considered as multiple issues.

 

How do we handle situations where a parameter could be required by the
resource server apart from what I have mentioned above? (HTTP GET maybe the
only way out) but then there should be a way to configure what type of
resource server it is and what details are required.


REST like invocation is the most simple yet the powerful way of  getting resources out a  repository.  So the  current implementation of SynapseEnviroment.get(String) would defiantly do that. We can integrate a very powerful lookup for this resources, if we uses Axis2's ServiceClient (Once Axis2-0.95 releases) REST invocation mechanism. But to  integrate this, we need to populate a Object and fill the right information.

IMHO, i guess commons-httpclient addresses most of  the problems  with regular and ssl connection.

Thank you

Saminda

Resources: [1]. http://jakarta.apache.org/commons/httpclient/sslguide.html

 




---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org

 

 


---------------------------------------------------------------------
To unsubscribe, e-mail: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org





--
Paul Fremantle
VP/Technology, WSO2 and OASIS WS-RX TC Co-chair

http://bloglines.com/blog/paulfremantle
paul@wso2.com

"Oxygenating the Web Service Platform", www.wso2.com




--
Paul Fremantle
VP/Technology, WSO2 and OASIS WS-RX TC Co-chair

http://bloglines.com/blog/paulfremantle
paul@wso2.com

"Oxygenating the Web Service Platform", www.wso2.com

 

 




--
Paul Fremantle
VP/Technology, WSO2 and OASIS WS-RX TC Co-chair

http://bloglines.com/blog/paulfremantle
paul@wso2.com

"Oxygenating the Web Service Platform", www.wso2.com