From 9ff1e787f915539b1980654e3d3d2013ff5c81d2 Mon Sep 17 00:00:00 2001 From: shyouhei Date: Mon, 7 Jul 2008 07:38:25 +0000 Subject: wrong commit; sorry git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_6_269@17938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ruby_1_8_6/test/soap/header/server.cgi | 119 --------------------------------- 1 file changed, 119 deletions(-) delete mode 100644 ruby_1_8_6/test/soap/header/server.cgi (limited to 'ruby_1_8_6/test/soap/header/server.cgi') diff --git a/ruby_1_8_6/test/soap/header/server.cgi b/ruby_1_8_6/test/soap/header/server.cgi deleted file mode 100644 index 2a188538d9..0000000000 --- a/ruby_1_8_6/test/soap/header/server.cgi +++ /dev/null @@ -1,119 +0,0 @@ -require 'pstore' -require 'soap/rpc/cgistub' -require 'soap/header/simplehandler' - - -class AuthHeaderPortServer < SOAP::RPC::CGIStub - PortName = 'http://tempuri.org/authHeaderPort' - SupportPortName = 'http://tempuri.org/authHeaderSupportPort' - MyHeaderName = XSD::QName.new("http://tempuri.org/authHeader", "auth") - SessionDB = File.join(File.expand_path(File.dirname(__FILE__)), 'session.pstoredb') - - class AuthHeaderService - def self.create - new - end - - def deposit(amt) - "deposit #{amt} OK" - end - - def withdrawal(amt) - "withdrawal #{amt} OK" - end - end - - class AuthHeaderSupportService - def delete_sessiondb - File.unlink(SessionDB) if File.file?(SessionDB) - backup = SessionDB + "~" - File.unlink(backup) if File.file?(backup) - end - end - - def initialize(*arg) - super - add_rpc_servant(AuthHeaderService.new, PortName) - add_rpc_servant(AuthHeaderSupportService.new, SupportPortName) - add_rpc_headerhandler(ServerAuthHeaderHandler.new) - end - - class ServerAuthHeaderHandler < SOAP::Header::SimpleHandler - Users = { - 'NaHi' => 'passwd', - 'HiNa' => 'wspass' - } - - def initialize - super(MyHeaderName) - @db = PStore.new(SessionDB) - @db.transaction do - @db["root"] = {} unless @db.root?("root") - end - @userid = @sessionid = nil - end - - def login(userid, passwd) - userid and passwd and Users[userid] == passwd - end - - def auth(sessionid) - in_sessiondb do |root| - root[sessionid][0] - end - end - - def create_session(userid) - in_sessiondb do |root| - while true - key = create_sessionkey - break unless root[key] - end - root[key] = [userid] - key - end - end - - def destroy_session(sessionkey) - in_sessiondb do |root| - root.delete(sessionkey) - end - end - - def on_simple_outbound - { "sessionid" => @sessionid } - end - - def on_simple_inbound(my_header, mu) - succeeded = false - userid = my_header["userid"] - passwd = my_header["passwd"] - if login(userid, passwd) - succeeded = true - elsif sessionid = my_header["sessionid"] - if userid = auth(sessionid) - destroy_session(sessionid) - succeeded = true - end - end - raise RuntimeError.new("authentication failed") unless succeeded - @userid = userid - @sessionid = create_session(userid) - end - - private - - def create_sessionkey - Time.now.usec.to_s - end - - def in_sessiondb - @db.transaction do - yield(@db["root"]) - end - end - end -end - - -status = AuthHeaderPortServer.new('AuthHeaderPortServer', nil).start -- cgit v1.2.3