Sha256: 5c851566aa4f92da37edadf4ac179e93f45f3c2267864886fefe95c6e94fb3f6

Contents?: true

Size: 946 Bytes

Versions: 5

Compression:

Stored size: 946 Bytes

Contents

#!/usr/bin/env ruby
# encoding: ASCII-8BIT

# SOAP server cannot use WEBrick's httpauth feature for now...
require 'soap/rpc/standaloneServer'

class Server < SOAP::RPC::StandaloneServer
  Namespace = 'urn:test'

  class Servant
    @@counter = 0

    def self.create
      new(@@counter += 1)
    end

    def initialize(counter)
      @counter = counter
    end

    def echo(msg)
      "echo from servant ##{@counter} (#{SOAP::RPC::SOAPlet.user}): #{msg}"
    end
  end

  def initialize(*arg)
    super
    add_rpc_request_servant(Servant)
  end

  def on_init
    userdb_file = File.join(File.dirname(__FILE__), 'htpasswd')
    userdb = WEBrick::HTTPAuth::Htpasswd.new(userdb_file)
    self.authenticator = WEBrick::HTTPAuth::BasicAuth.new(:Realm => 'auth', :UserDB => userdb)
  end
end

if $0 == __FILE__
  server = Server.new('tst', Server::Namespace, '0.0.0.0', 7000)
  trap(:INT) do
    server.shutdown
  end
  status = server.start
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
soap5r-2.0.3 sample/payload/basicauth/server.rb
soap5r-2.0.2 sample/payload/basicauth/server.rb
soap5r-2.0.1 sample/payload/basicauth/server.rb
soap5r-2.0.0 sample/payload/basicauth/server.rb
soap5r-2.0.0.20120130130121 sample/payload/basicauth/server.rb