Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

root/trunk/sample/soapheader/authheader/client.rb

Revision 1960, 0.9 kB (checked in by nahi, 1 year ago)
  • reverted the previous change; just testing
  • Property svn:eol-style set to native
  • Property svn:keywords set to author date id revision
Line 
1 require 'soap/rpc/driver'
2 require 'soap/header/simplehandler'
3
4 server = ARGV.shift || 'http://localhost:7000/'
5
6 class ClientAuthHeaderHandler < SOAP::Header::SimpleHandler
7   MyHeaderName = XSD::QName.new("http://tempuri.org/authHeader", "auth")
8
9   def initialize(userid, passwd)
10     super(MyHeaderName)
11     @sessionid = nil
12     @userid = userid
13     @passwd = passwd
14     @mustunderstand = true
15   end
16
17   def on_simple_outbound
18     if @sessionid
19       { "sessionid" => @sessionid }
20     else
21       { "userid" => @userid, "passwd" => @passwd }
22     end
23   end
24
25   def on_simple_inbound(my_header, mustunderstand)
26     @sessionid = my_header["sessionid"]
27   end
28 end
29
30 ns = 'http://tempuri.org/authHeaderPort'
31 serv = SOAP::RPC::Driver.new(server, ns)
32 serv.add_method('deposit', 'amt')
33 serv.add_method('withdrawal', 'amt')
34
35 serv.headerhandler << ClientAuthHeaderHandler.new('NaHi', 'passwd')
36
37 serv.wiredump_dev = STDOUT
38
39 p serv.deposit(150)
40 p serv.withdrawal(120)
Note: See TracBrowser for help on using the browser.