Question about WSSE
by Frank Millman
Hi all
I am fairly new to Web Services, but I need to get to grips with it for the
app I am developing.
So far, soaplib-lxml for the server and suds for the client are making it
all seem relatively painless - many thanks!
I have a question regarding Web Services Security (wsse).
>From what I can find out, there are two main sources for this -
1. Web Services Security - Username Token Profile 1.0 - Oasis Standard
200401, March 2004
2. Web Services Security: SOAP Message Security 1.1 (WS-Security 2004) -
Oasis Standard incorporating Approved Errata, 01 November 2006
AFAICT, suds.wsse implements the first of these. However, I am not sure that
it is implemented correctly.
According to the document, there are two mandatory elements - UserName and
Password, and two optional elements - Nonce and Created.
If Nonce and Created are not used, then Password contains the actual
password, sent in the clear.
If Nonce and Created are used, then Password must be constructed as follows
-
Password_Digest = Base64 ( SHA-1 ( nonce + created + password ) )
This gives a small degree of protection over the password.
It seems to me that suds allows use of Nonce and Created, but still sends
the password in the clear, which rather defeats the object.
Does this sound right, or am I missing something?
Thanks
Frank Millman
13 years, 10 months
Using client without WSDL?
by Craig George
Anyone know if it is possible to use the suds client without a WSDL? I have
come across various services that do not use a WSDL and I would like to use
the same library (suds) for all of my SOAP calls. For instance, is it
possible to provide a URL and Namespace for the client object to post calls
to?
Thanks
13 years, 10 months
Best way to override URL for Port?
by Ryan Schneider
I've got WSDL files for a production service, but also want to support using
the same WSDL files for the development server.
The port is defined like so:
<service name="Foo">
<port binding="tns:FooBinding" name="FooPort">
<soap:address location="https://soap.foo.com/v3.3/soap" />
</port>
</service>
Basically I want to replace soap.foo.com with soap.dev.foo.com, but am not
finding a clear path down to the address.
I tried something like:
client = Client(wsdl_url)
client.sd[0].ports[0][0].location = new_url
client.someMethod(...)
But it still hit the old URL.
Any ideas?
Thanks,
Ryan
13 years, 10 months
suds.TypeNotFound: Type not found: 'ns0:ArrayOfCondition'
by Benjamin Lau
Hello,
I'm trying to use SUDS to make a connection API for Fedora Commons
[http://fedora-commons.org]. I've been able to get some basic stuff
to work with their simpler methods(no args, or just string args), but
when I started to try and use some of the more complex methods
(findObjects) I ran into the following error:
suds.TypeNotFound: Type not found: 'ns0:ArrayOfCondition'
I started trying to dig through things trying to figure out what is
going on. I was able to instantiate a bunch of the complex types...
but it seems like only the types referenced directly in the WSDL seem
to end up in the types list that SUDS knows about... so when the
complex types reference other complex types... they aren't listed
(maybe this is something normal with how WSDL/SOAP behave... I'm kind
of new to the whole thing)
Any help would be much appreciated. Here's a link to one of the
Fedora Commons WSDL definitions:
http://www.fedora-commons.org/definitions/1/api/Fedora-API-A.wsdl
And I've attached a piece of python code that demonstrates the error
as well... and you can see where I was trying to use the doctor...
thinking that might be the issue... maybe I've got the syntax wrong.
Thanks in advance,
Ben
13 years, 10 months
3.8GA raises "maximum recursion depth ... exception"
by Daniel Rodriguez
Dear Jeff,
Scenario:
Suds: 3.8GA
Python: 2.6.4
OS: Windows XP SP3
Clone executed (inside a thread or inside the main thread but passed to an
object derived from Threading.thread, the result is the same)
No further operation is performed on the cloned object.
Exiting the program raises the following exception (3 in my case, as I
create 3 clones):
Exception RuntimeError: 'maximum recursion depth exceeded in
__subclasscheck__' in <type 'exceptions.AttributeError'> ignored
I have not been able to trace the exception, since even with a "try except"
around the main loop of my application, the exception is not caught.
Maybe someone has experienced the same behaviour when working with threads
and clone.
Best regards
Daniel
On Tue, Nov 24, 2009 at 15:05, Jeff Ortel <jortel(a)redhat.com> wrote:
> Hey Elyrwen,
>
> If the wsdl is self contained (it does not import anything) I'd suggest you
> download the wsdl and then use suds to parse the local file as:
>
> >
> > url = 'file:///home/edynesh/wsdl.xml'
> > client = Client(url)
> >
>
> Otherwise, you can do as you suggested and let suds resolve the
> dependencies and rely on the cache to store the files locally. Or, you can
> read the wsdl and manually download all of the dependencies as well.
>
> On 11/24/2009 05:22 AM, Elyrwen Dynesh wrote:
>
>> Hello,
>>
>> I need to use suds to parse a wsdl available on my local network,
>> however there is no connection
>> to the internet. Port 80 is blocked in and out. What are my options? So
>> far, I was thinking about the following solutions:
>>
>> 1. Unblock 80 and let suds parse the wsdl and create the schemas in
>> /tmp/suds. Then block 80 and use suds normally. This seems to work,
>> however I don't know how long? Is there any caching
>>
>
> Yes, you can do this. By default, suds caches files in /tmp/suds for 1
> day. You can change this by doing something like:
>
> >
> > client.options.cache.setduration(days=0) # 0 = forever
> >
>
>
>>
>>
>>
>>
>> _______________________________________________
>> fedora-suds-list mailing list
>> fedora-suds-list(a)redhat.com
>> https://www.redhat.com/mailman/listinfo/fedora-suds-list
>>
>
>
> _______________________________________________
> fedora-suds-list mailing list
> fedora-suds-list(a)redhat.com
> https://www.redhat.com/mailman/listinfo/fedora-suds-list
>
13 years, 10 months
0.3.9 release candidate
by Jeff Ortel
All,
Revision 655 contains all features defined for 0.3.9. Testing is still in progress.
Testing includes a reported issue with authentication when the wsdl is cached. If you're
interested in helping test, please install 0.3.9 and run in your environment. This really
helps.
Release notes:
* Updated caching.
o Replaced stream-based caching in the transport package with document-based caching.
o Caches pickled Document objects instead of XML text. 2x Faster!
o No more SAX parsing exceptions on damaged or incomplete cached files.
* Cached WSDL objects. Entire Definitions object including contained Schema
object cached via pickle.
* Copy of soap encoding schema packaged with suds.
* Refactor Transports to use ProxyHandler instead of urllib2.Request.set_proxy().
* Added WSSE <Timestamp/> and <Expires/> support. See: Timestamp token.
After upgrading to 0.3.9, I'd suggest clearing the suds caching directory. This is not
required but will help in the event that we have any caching related issues.
https://fedorahosted.org/suds/#Development
13 years, 10 months