You are viewing a plain text version of this content. The canonical link for it is here.
Posted to muse-dev@ws.apache.org by Andrea Gazzarini <ag...@apache.org> on 2009/02/26 07:24:00 UTC

GetResourcePropertyDocument >> UnknownResourceFault question

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:

&lt;wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing
"&gt;
    &lt;wsa:Address&gt;
http://localhost:2737/qman/services/QManWsResource&lt;/wsa:Address&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:Address&gt;
http://localhost:2737/app/services/adapter&lt;/wsa:Address&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

Posted by Chris Twiner <ch...@gmail.com>.
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 <ag...@apache.org> 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:
> &lt;wsa:EndpointReference
> xmlns:wsa="http://www.w3.org/2005/08/addressing"&gt;
>
>  &lt;wsa:Address&gt;http://localhost:2737/qman/services/QManWsResource&lt;/wsa:Address&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:Address&gt;http://localhost:2737/app/services/adapter&lt;/wsa:Address&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

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