GetResourcePropertyDocument >> UnknownResourceFault question

View: New views
2 Messages — Rating Filter:   Alert me  

GetResourcePropertyDocument >> UnknownResourceFault question

by Andrea Gazzarini-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi all, I'm testing the WSRP Muse interface against the WSRP specs.
Well, it seems that it's working but I have a question concerning UnknownResourceFault. 
I can get that exception instead of a generic soap fault simply using WsResourceRouter instead of SimpleResourceRouter. 
Well, when a request is made for a resource that doesn't exists, the mentioned fault is returned (in the detail section) : a message is written 

There is no resource available at the given EPR: 

(unknwown endpoint reference details)
 
The problem (from my point of view) is the next section in the reported fault. The response contains all existing EPRs! What is the problem? If I'm an intruder and I want to know all the 
EPRs on a given node, then I simply need to send a request that contains an unknown resource (and we know that is an easy thing!) 

That's exactly what I've done for my test. I have a service group and service members. First I get the service group address, then I get a service member.
After that, the service member points to a valid WS-Resource. Before using that, I replace the resource id  with an inexistent one :

_resourceClient.getEndpointReference().removeParameter(Names.RESOURCE_ID_QNAME);
_resourceClient.getEndpointReference().addParameter(Names.RESOURCE_ID_QNAME,"lablabalbal");
_resourceClient.setTrace(true);
_resourceClient.getResourcePropertyDocument();
 
 
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
    <soap:Header>
        <wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:4542494f-e879-55a2-be4f-bc57d02cd467</wsa:MessageID>
        <wsa:RelatesTo RelationshipType="wsa:Reply" xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:05972d36-183b-74ea-396c-8728012fc051</wsa:RelatesTo>
        <wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing">
            <wsa:Address>http://localhost:2737/qman/services/QManWsResource</wsa:Address>
            <wsa:ReferenceParameters>
                <qman-wsa:ResourceId wsa:IsReferenceParameter="true"
                    xmlns:qman-wsa="http://amqp.apache.org/qpid/management/qman/addressing" xmlns:wsa="http://www.w3.org/2005/08/addressing">lablabalbal</qman-wsa:ResourceId>
            </wsa:ReferenceParameters>
        </wsa:From>
    </soap:Header>
    <soap:Body>
        <soap:Fault>
            <soap:Code>
                <soap:Value>soap:Receiver</soap:Value>
            </soap:Code>
            <soap:Reason>
                <soap:Text>[ID = 'DestinationUnreachable'] There is no resource available at the given EPR: 

&lt;wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing"&gt;
    &lt;wsa:ReferenceParameters&gt;
        &lt;qman-wsa:ResourceId
            xmlns:qman-wsa="http://amqp.apache.org/qpid/management/qman/addressing"
            wsa:IsReferenceParameter="true" xmlns:wsa="http://www.w3.org/2005/08/addressing"&gt;lablabalbal&lt;/qman-wsa:ResourceId&gt;
    &lt;/wsa:ReferenceParameters&gt;
&lt;/wsa:EndpointReference&gt;

The existing EPRs hosted by this endpoint are: 

&lt;wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing"&gt;
    &lt;wsa:ReferenceParameters xmlns:wsa="http://www.w3.org/2005/08/addressing"/&gt;
&lt;/wsa:EndpointReference&gt;

...
...

</soap:Text>
            </soap:Reason>
            <soap:Detail>
                <wsrf-rw:ResourceUnknownFault xmlns:wsrf-rw="http://docs.oasis-open.org/wsrf/rw-2">
                    <wsrf-bf:Timestamp xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/bf-2">2009-02-26T06:22:13+01:00</wsrf-bf:Timestamp>
                </wsrf-rw:ResourceUnknownFault>
            </soap:Detail>
        </soap:Fault>
    </soap:Body>
</soap:Envelope>


Is that correct?

Regards,
Andrea

Re: GetResourcePropertyDocument >> UnknownResourceFault question

by Chris Twiner :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I seem to recall others bringing this up in the past (that all EPRs
are returned), I personally think its great for dev, but not so great
for prod.  This is probably something that could be considered for
2.2.1 as its *hopefully* a non breaking change.

If you have a particular set of preferences please raise a Jira so we
can track it, otherwise I'll just assume a simple on/off type
parameter.  Perhaps in the off case (don't send the EPRs) it should
send the parameter name.  Also to not break existing applications
which depend on this feature, I'll leave it on by default.

On Thu, Feb 26, 2009 at 7:24 AM, Andrea Gazzarini <agazzarini@...> wrote:

> Hi all, I'm testing the WSRP Muse interface against the WSRP specs.
> Well, it seems that it's working but I have a question concerning
> UnknownResourceFault.
> I can get that exception instead of a generic soap fault simply using
> WsResourceRouter instead of SimpleResourceRouter.
> Well, when a request is made for a resource that doesn't exists, the
> mentioned fault is returned (in the detail section) : a message is written
> There is no resource available at the given EPR:
> (unknwown endpoint reference details)
>
> The problem (from my point of view) is the next section in the reported
> fault. The response contains all existing EPRs! What is the problem? If I'm
> an intruder and I want to know all the
> EPRs on a given node, then I simply need to send a request that contains an
> unknown resource (and we know that is an easy thing!)
> That's exactly what I've done for my test. I have a service group and
> service members. First I get the service group address, then I get a service
> member.
> After that, the service member points to a valid WS-Resource. Before using
> that, I replace the resource id  with an inexistent one :
> _resourceClient.getEndpointReference().removeParameter(Names.RESOURCE_ID_QNAME);
> _resourceClient.getEndpointReference().addParameter(Names.RESOURCE_ID_QNAME,"lablabalbal");
> _resourceClient.setTrace(true);
> _resourceClient.getResourcePropertyDocument();
>
>
> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
>     <soap:Header>
>         <wsa:To
> xmlns:wsa="http://www.w3.org/2005/08/addressing">http://www.w3.org/2005/08/addressing/role/anonymous</wsa:To>
>         <wsa:Action
> xmlns:wsa="http://www.w3.org/2005/08/addressing">http://www.w3.org/2005/08/addressing/fault</wsa:Action>
>         <wsa:MessageID
> xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:4542494f-e879-55a2-be4f-bc57d02cd467</wsa:MessageID>
>         <wsa:RelatesTo RelationshipType="wsa:Reply"
> xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:05972d36-183b-74ea-396c-8728012fc051</wsa:RelatesTo>
>         <wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing">
>
>  <wsa:Address>http://localhost:2737/qman/services/QManWsResource</wsa:Address>
>             <wsa:ReferenceParameters>
>                 <qman-wsa:ResourceId wsa:IsReferenceParameter="true"
>
>  xmlns:qman-wsa="http://amqp.apache.org/qpid/management/qman/addressing"
> xmlns:wsa="http://www.w3.org/2005/08/addressing">lablabalbal</qman-wsa:ResourceId>
>             </wsa:ReferenceParameters>
>         </wsa:From>
>     </soap:Header>
>     <soap:Body>
>         <soap:Fault>
>             <soap:Code>
>                 <soap:Value>soap:Receiver</soap:Value>
>             </soap:Code>
>             <soap:Reason>
>                 <soap:Text>[ID = 'DestinationUnreachable'] There is no
> resource available at the given EPR:
> <wsa:EndpointReference
> xmlns:wsa="http://www.w3.org/2005/08/addressing">
>
>  <wsa:Address>http://localhost:2737/qman/services/QManWsResource</wsa:Address>
>     <wsa:ReferenceParameters>
>         <qman-wsa:ResourceId
>
>  xmlns:qman-wsa="http://amqp.apache.org/qpid/management/qman/addressing"
>             wsa:IsReferenceParameter="true"
> xmlns:wsa="http://www.w3.org/2005/08/addressing">lablabalbal</qman-wsa:ResourceId>
>     </wsa:ReferenceParameters>
> </wsa:EndpointReference>
> The existing EPRs hosted by this endpoint are:
> <wsa:EndpointReference
> xmlns:wsa="http://www.w3.org/2005/08/addressing">
>     <wsa:ReferenceParameters
> xmlns:wsa="http://www.w3.org/2005/08/addressing"/>
>
>  <wsa:Address>http://localhost:2737/app/services/adapter</wsa:Address>
> </wsa:EndpointReference>
> ...
> ...
> </soap:Text>
>             </soap:Reason>
>             <soap:Detail>
>                 <wsrf-rw:ResourceUnknownFault
> xmlns:wsrf-rw="http://docs.oasis-open.org/wsrf/rw-2">
>                     <wsrf-bf:Timestamp
> xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/bf-2">2009-02-26T06:22:13+01:00</wsrf-bf:Timestamp>
>                 </wsrf-rw:ResourceUnknownFault>
>             </soap:Detail>
>         </soap:Fault>
>     </soap:Body>
> </soap:Envelope>
>
> Is that correct?
> Regards,
> Andrea

---------------------------------------------------------------------
To unsubscribe, e-mail: muse-dev-unsubscribe@...
For additional commands, e-mail: muse-dev-help@...