summaryrefslogtreecommitdiff
path: root/sample/soap/authheader/client2.rb
diff options
context:
space:
mode:
Diffstat (limited to 'sample/soap/authheader/client2.rb')
-rw-r--r--sample/soap/authheader/client2.rb15
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)