Module: Msf::WebServices::JsonRpcServlet

Defined in:
lib/msf/core/web_services/servlet/json_rpc_servlet.rb

Class Method Summary collapse

Class Method Details

.api_path ⇒ Object



5
6
7
# File 'lib/msf/core/web_services/servlet/json_rpc_servlet.rb', line 5

def self.api_path
  '/api/:version/json-rpc'
end

.post_rpc ⇒ Object

Process JSON-RPC request



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/msf/core/web_services/servlet/json_rpc_servlet.rb', line 18

def self.post_rpc
  lambda {
    warden.authenticate!
    begin
      body = request.body.read
      tmp_params = sanitize_params(params)
      data = get_dispatcher(settings.dispatchers, tmp_params[:version].to_sym, framework).process(body)
      set_raw_response(data)
    rescue => e
      print_error("There was an error executing the RPC: #{e.message}.", e)
      error = Msf::RPC::JSON::Dispatcher.create_error_response(Msf::RPC::JSON::InternalError.new(e))
      data = Msf::RPC::JSON::Dispatcher.to_json(error)
      set_raw_response(data, code: 500)
    end
  }
end

.registered(app) ⇒ Object



9
10
11
# File 'lib/msf/core/web_services/servlet/json_rpc_servlet.rb', line 9

def self.registered(app)
  app.post JsonRpcServlet.api_path, &post_rpc
end