diff options
Diffstat (limited to 'sample/soap/authheader/client2.rb')
-rw-r--r-- | sample/soap/authheader/client2.rb | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/sample/soap/authheader/client2.rb b/sample/soap/authheader/client2.rb index 58a7da45ae..aa5172a5b1 100644 --- a/sample/soap/authheader/client2.rb +++ b/sample/soap/authheader/client2.rb @@ -6,18 +6,16 @@ server = ARGV.shift || 'http://localhost:7000/' class ClientAuthHeaderHandler < SOAP::Header::SimpleHandler MyHeaderName = XSD::QName.new("http://tempuri.org/authHeader", "auth") - def initialize(userid, passwd) + attr_accessor :sessionid + + def initialize super(MyHeaderName) @sessionid = nil - @userid = userid - @passwd = passwd end def on_simple_outbound if @sessionid { "sessionid" => @sessionid } - else - { "userid" => @userid, "passwd" => @passwd } end end @@ -28,12 +26,17 @@ end ns = 'http://tempuri.org/authHeaderPort' serv = SOAP::RPC::Driver.new(server, ns) +serv.add_method('login', 'userid', 'passwd') serv.add_method('deposit', 'amt') serv.add_method('withdrawal', 'amt') -serv.headerhandler << ClientAuthHeaderHandler.new('NaHi', 'passwd') +h = ClientAuthHeaderHandler.new + +serv.headerhandler << h serv.wiredump_dev = STDOUT +sessionid = serv.login('NaHi', 'passwd') +h.sessionid = sessionid p serv.deposit(150) p serv.withdrawal(120) |