synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Saminda Abeyruwan" <samin...@gmail.com>
Subject Re: get(String url) issues for getting external resources
Date Wed, 22 Mar 2006 06:20:21 GMT
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
> >
>
>

Mime
View raw message