Files
metasploit-gs/api/Msf/WebServices/ServletHelper.html
T
jenkins-metasploit c3f5bd3de2 Reboot gh-pages
2026-05-08 17:08:43 +00:00

1624 lines
58 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
Module: Msf::WebServices::ServletHelper
&mdash; Documentation by YARD 0.9.37
</title>
<link rel="stylesheet" href="../../css/style.css" type="text/css" />
<link rel="stylesheet" href="../../css/common.css" type="text/css" />
<script type="text/javascript">
pathId = "Msf::WebServices::ServletHelper";
relpath = '../../';
</script>
<script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
</head>
<body>
<div class="nav_wrap">
<iframe id="nav" src="../../class_list.html?1"></iframe>
<div id="resizer"></div>
</div>
<div id="main" tabindex="-1">
<div id="header">
<div id="menu">
<a href="../../_index.html">Index (S)</a> &raquo;
<span class='title'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span> &raquo; <span class='title'><span class='object_link'><a href="../WebServices.html" title="Msf::WebServices (module)">WebServices</a></span></span>
&raquo;
<span class="title">ServletHelper</span>
</div>
<div id="search">
<a class="full_list_link" id="class_list_link"
href="../../class_list.html">
<svg width="24" height="24">
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
</svg>
</a>
</div>
<div class="clear"></div>
</div>
<div id="content"><h1>Module: Msf::WebServices::ServletHelper
</h1>
<div class="box_info">
<dl>
<dt>Includes:</dt>
<dd><span class='object_link'><a href="../../ResponseDataHelper.html" title="ResponseDataHelper (module)">ResponseDataHelper</a></span></dd>
</dl>
<dl>
<dt>Defined in:</dt>
<dd>lib/msf/core/web_services/servlet_helper.rb</dd>
</dl>
</div>
<h2>
Constant Summary
<small><a href="#" class="constants_summary_toggle">collapse</a></small>
</h2>
<dl class="constants">
<dt id="console_printer-classvariable" class="">@@console_printer =
</dt>
<dd><pre class="code"><span class='const'><span class='object_link'><a href="../../Rex.html" title="Rex (module)">Rex</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Rex/Ui.html" title="Rex::Ui (module)">Ui</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Rex/Ui/Text.html" title="Rex::Ui::Text (module)">Text</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Rex/Ui/Text/Output.html" title="Rex::Ui::Text::Output (class)">Output</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../../Rex/Ui/Text/Output/Stdio.html" title="Rex::Ui::Text::Output::Stdio (class)">Stdio</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="../../Rex/Ui/Text/Output/Stdio.html#initialize-instance_method" title="Rex::Ui::Text::Output::Stdio#initialize (method)">new</a></span></span></pre></dd>
</dl>
<h2>
Instance Method Summary
<small><a href="#" class="summary_toggle">collapse</a></small>
</h2>
<ul class="summary">
<li class="public ">
<span class="summary_signature">
<a href="#create_error_response-instance_method" title="#create_error_response (instance method)">#<strong>create_error_response</strong>(error:, message:, code:) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#encode_loot_data-instance_method" title="#encode_loot_data (instance method)">#<strong>encode_loot_data</strong>(data) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#exec_report_job-instance_method" title="#exec_report_job (instance method)">#<strong>exec_report_job</strong>(request, includes = nil, &amp;job) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#format_cred_json-instance_method" title="#format_cred_json (instance method)">#<strong>format_cred_json</strong>(data) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#get_db-instance_method" title="#get_db (instance method)">#<strong>get_db</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#is_single_object%3F-instance_method" title="#is_single_object? (instance method)">#<strong>is_single_object?</strong>(data, params) &#x21d2; Bool </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Determines if this data set should be output as a single object instead of an array.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#parse_json_request-instance_method" title="#parse_json_request (instance method)">#<strong>parse_json_request</strong>(request, strict = false) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#print_error-instance_method" title="#print_error (instance method)">#<strong>print_error</strong>(msg, exception = nil) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#print_error_and_create_response-instance_method" title="#print_error_and_create_response (instance method)">#<strong>print_error_and_create_response</strong>(error:, message:, code:) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#print_good-instance_method" title="#print_good (instance method)">#<strong>print_good</strong>(msg) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#print_line-instance_method" title="#print_line (instance method)">#<strong>print_line</strong>(msg) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#print_warning-instance_method" title="#print_warning (instance method)">#<strong>print_warning</strong>(msg) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#sanitize_params-instance_method" title="#sanitize_params (instance method)">#<strong>sanitize_params</strong>(params, query_hash = {}) &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Sinatra injects extra parameters for some reason: <a href="https://github.com/sinatra/sinatra/issues/453">github.com/sinatra/sinatra/issues/453</a> This method cleans those up so we dont have any unexpected values before passing on.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#set_empty_response-instance_method" title="#set_empty_response (instance method)">#<strong>set_empty_response</strong> &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#set_error_on_response-instance_method" title="#set_error_on_response (instance method)">#<strong>set_error_on_response</strong>(error) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#set_html_response-instance_method" title="#set_html_response (instance method)">#<strong>set_html_response</strong>(data) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#set_json_data_response-instance_method" title="#set_json_data_response (instance method)">#<strong>set_json_data_response</strong>(response:, includes: nil, code: 200) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#set_json_error_response-instance_method" title="#set_json_error_response (instance method)">#<strong>set_json_error_response</strong>(response:, code:) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#set_json_response-instance_method" title="#set_json_response (instance method)">#<strong>set_json_response</strong>(data, includes = nil, code = 200) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#set_raw_response-instance_method" title="#set_raw_response (instance method)">#<strong>set_raw_response</strong>(data, code: 200) &#x21d2; Object </a>
</span>
<span class="summary_desc"><div class='inline'></div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#warden-instance_method" title="#warden (instance method)">#<strong>warden</strong> &#x21d2; Warden::Proxy </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Get Warden::Proxy object from the Rack environment.</p>
</div></span>
</li>
<li class="public ">
<span class="summary_signature">
<a href="#warden_options-instance_method" title="#warden_options (instance method)">#<strong>warden_options</strong> &#x21d2; Hash </a>
</span>
<span class="summary_desc"><div class='inline'>
<p>Get Warden options hash from the Rack environment.</p>
</div></span>
</li>
</ul>
<h3 class="inherited">Methods included from <span class='object_link'><a href="../../ResponseDataHelper.html" title="ResponseDataHelper (module)">ResponseDataHelper</a></span></h3>
<p class="inherited"><span class='object_link'><a href="../../ResponseDataHelper.html#json_to_hash-instance_method" title="ResponseDataHelper#json_to_hash (method)">#json_to_hash</a></span>, <span class='object_link'><a href="../../ResponseDataHelper.html#json_to_mdm_object-instance_method" title="ResponseDataHelper#json_to_mdm_object (method)">#json_to_mdm_object</a></span>, <span class='object_link'><a href="../../ResponseDataHelper.html#process_file-instance_method" title="ResponseDataHelper#process_file (method)">#process_file</a></span>, <span class='object_link'><a href="../../ResponseDataHelper.html#to_ar-instance_method" title="ResponseDataHelper#to_ar (method)">#to_ar</a></span></p>
<div id="instance_method_details" class="method_details_list">
<h2>Instance Method Details</h2>
<div class="method_details first">
<h3 class="signature first" id="create_error_response-instance_method">
#<strong>create_error_response</strong>(error:, message:, code:) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
60
61
62
63
64
65
66</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 60</span>
<span class='kw'>def</span> <span class='id identifier rubyid_create_error_response'>create_error_response</span><span class='lparen'>(</span><span class='label'>error:</span><span class='comma'>,</span> <span class='label'>message:</span><span class='comma'>,</span> <span class='label'>code:</span><span class='rparen'>)</span>
<span class='id identifier rubyid_error_response'>error_response</span> <span class='op'>=</span> <span class='lbrace'>{</span>
<span class='label'>code:</span> <span class='id identifier rubyid_code'>code</span><span class='comma'>,</span>
<span class='label'>message:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
<span class='rbrace'>}</span>
<span class='id identifier rubyid_set_json_error_response'>set_json_error_response</span><span class='lparen'>(</span><span class='label'>response:</span> <span class='id identifier rubyid_error_response'>error_response</span><span class='comma'>,</span> <span class='label'>code:</span> <span class='id identifier rubyid_code'>code</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="encode_loot_data-instance_method">
#<strong>encode_loot_data</strong>(data) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
135
136
137
138
139
140</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 135</span>
<span class='kw'>def</span> <span class='id identifier rubyid_encode_loot_data'>encode_loot_data</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span>
<span class='const'>Array</span><span class='period'>.</span><span class='id identifier rubyid_wrap'>wrap</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_loot'>loot</span><span class='op'>|</span>
<span class='id identifier rubyid_loot'>loot</span><span class='period'>.</span><span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='const'>Base64</span><span class='period'>.</span><span class='id identifier rubyid_urlsafe_encode64'>urlsafe_encode64</span><span class='lparen'>(</span><span class='id identifier rubyid_loot'>loot</span><span class='period'>.</span><span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_loot'>loot</span><span class='period'>.</span><span class='id identifier rubyid_data'>data</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id identifier rubyid_loot'>loot</span><span class='period'>.</span><span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_data'>data</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="exec_report_job-instance_method">
#<strong>exec_report_job</strong>(request, includes = nil, &amp;job) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 68</span>
<span class='kw'>def</span> <span class='id identifier rubyid_exec_report_job'>exec_report_job</span><span class='lparen'>(</span><span class='id identifier rubyid_request'>request</span><span class='comma'>,</span> <span class='id identifier rubyid_includes'>includes</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_job'>job</span><span class='rparen'>)</span>
<span class='kw'>begin</span>
<span class='comment'># report jobs always need data
</span> <span class='id identifier rubyid_opts'>opts</span> <span class='op'>=</span> <span class='id identifier rubyid_parse_json_request'>parse_json_request</span><span class='lparen'>(</span><span class='id identifier rubyid_request'>request</span><span class='comma'>,</span> <span class='kw'>true</span><span class='rparen'>)</span>
<span class='id identifier rubyid_exec_async'>exec_async</span> <span class='op'>=</span> <span class='id identifier rubyid_opts'>opts</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:exec_async</span><span class='rparen'>)</span>
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_exec_async'>exec_async</span><span class='rparen'>)</span>
<span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../WebServices.html" title="Msf::WebServices (module)">WebServices</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="JobProcessor.html" title="Msf::WebServices::JobProcessor (class)">JobProcessor</a></span></span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_submit_job'>submit_job</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='comma'>,</span> <span class='op'>&amp;</span><span class='id identifier rubyid_job'>job</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='id identifier rubyid_set_empty_response'>set_empty_response</span>
<span class='kw'>else</span>
<span class='id identifier rubyid_data'>data</span> <span class='op'>=</span> <span class='id identifier rubyid_job'>job</span><span class='period'>.</span><span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_opts'>opts</span><span class='rparen'>)</span>
<span class='kw'>return</span> <span class='id identifier rubyid_set_json_data_response'>set_json_data_response</span><span class='lparen'>(</span><span class='label'>response:</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='label'>includes:</span> <span class='id identifier rubyid_includes'>includes</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>rescue</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
<span class='id identifier rubyid_print_error_and_create_response'>print_error_and_create_response</span><span class='lparen'>(</span><span class='label'>error:</span> <span class='id identifier rubyid_e'>e</span><span class='comma'>,</span> <span class='label'>message:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>There was an error creating the record:</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='label'>code:</span> <span class='int'>500</span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="format_cred_json-instance_method">
#<strong>format_cred_json</strong>(data) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
121
122
123
124
125
126
127
128
129
130
131
132
133</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 121</span>
<span class='kw'>def</span> <span class='id identifier rubyid_format_cred_json'>format_cred_json</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span>
<span class='id identifier rubyid_includes'>includes</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='symbol'>:logins</span><span class='comma'>,</span> <span class='symbol'>:public</span><span class='comma'>,</span> <span class='symbol'>:private</span><span class='comma'>,</span> <span class='symbol'>:realm</span><span class='comma'>,</span> <span class='symbol'>:origin</span><span class='rbracket'>]</span>
<span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
<span class='const'>Array</span><span class='period'>.</span><span class='id identifier rubyid_wrap'>wrap</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_cred'>cred</span><span class='op'>|</span>
<span class='id identifier rubyid_json'>json</span> <span class='op'>=</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_as_json'>as_json</span><span class='lparen'>(</span><span class='label'>include:</span> <span class='id identifier rubyid_includes'>includes</span><span class='rparen'>)</span>
<span class='id identifier rubyid_json'>json</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>origin</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_json'>json</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>origin</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>type</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_origin'>origin</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_origin'>origin</span>
<span class='id identifier rubyid_json'>json</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>public</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_json'>json</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>public</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>type</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_public'>public</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_public'>public</span>
<span class='id identifier rubyid_json'>json</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>private</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_json'>json</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>private</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>type</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_private'>private</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_cred'>cred</span><span class='period'>.</span><span class='id identifier rubyid_private'>private</span>
<span class='id identifier rubyid_response'>response</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_json'>json</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_response'>response</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="get_db-instance_method">
#<strong>get_db</strong> &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
88
89
90</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 88</span>
<span class='kw'>def</span> <span class='id identifier rubyid_get_db'>get_db</span>
<span class='const'><span class='object_link'><a href="../../Msf.html" title="Msf (module)">Msf</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../WebServices.html" title="Msf::WebServices (module)">WebServices</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="DBManagerProxy.html" title="Msf::WebServices::DBManagerProxy (class)">DBManagerProxy</a></span></span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_db'>db</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="is_single_object?-instance_method">
#<strong>is_single_object?</strong>(data, params) &#x21d2; <tt>Bool</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Determines if this data set should be output as a single object instead of an array.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>data</span>
<span class='type'>(<tt>Array</tt>)</span>
&mdash;
<div class='inline'>
<p>Array containing the data to be returned to the user.</p>
</div>
</li>
<li>
<span class='name'>params</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>The parameters included in the request.</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Bool</tt>)</span>
&mdash;
<div class='inline'>
<p>true if the data should be printed as a single object, false otherwise</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
114
115
116
117
118
119</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 114</span>
<span class='kw'>def</span> <span class='id identifier rubyid_is_single_object?'>is_single_object?</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_params'>params</span><span class='rparen'>)</span>
<span class='comment'># Check to see if the ID parameter was present. If so, print as a single object.
</span> <span class='comment'># Note that ID is not valid as a query parameter, so we assume that the user
</span> <span class='comment'># used &lt;resource&gt;/{ID} notation if ID is present in params.
</span> <span class='op'>!</span><span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='symbol'>:id</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_count'>count</span> <span class='op'>==</span> <span class='int'>1</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="parse_json_request-instance_method">
#<strong>parse_json_request</strong>(request, strict = false) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
44
45
46
47
48
49
50
51
52
53</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 44</span>
<span class='kw'>def</span> <span class='id identifier rubyid_parse_json_request'>parse_json_request</span><span class='lparen'>(</span><span class='id identifier rubyid_request'>request</span><span class='comma'>,</span> <span class='id identifier rubyid_strict'>strict</span> <span class='op'>=</span> <span class='kw'>false</span><span class='rparen'>)</span>
<span class='id identifier rubyid_body'>body</span> <span class='op'>=</span> <span class='id identifier rubyid_request'>request</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span>
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_body'>body</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_body'>body</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Invalid body, expected data</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_strict'>strict</span>
<span class='kw'>return</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='const'>JSON</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_body'>body</span><span class='rparen'>)</span>
<span class='id identifier rubyid_hash'>hash</span><span class='period'>.</span><span class='id identifier rubyid_deep_symbolize_keys'>deep_symbolize_keys</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="print_error-instance_method">
#<strong>print_error</strong>(msg, exception = nil) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
166
167
168
169
170
171
172
173
174
175
176</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 166</span>
<span class='kw'>def</span> <span class='id identifier rubyid_print_error'>print_error</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span><span class='comma'>,</span> <span class='id identifier rubyid_exception'>exception</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
<span class='kw'>unless</span> <span class='id identifier rubyid_exception'>exception</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
<span class='id identifier rubyid_msg'>msg</span> <span class='op'>+=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n Call Stack:</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_exception'>exception</span><span class='period'>.</span><span class='id identifier rubyid_backtrace'>backtrace</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_line'>line</span><span class='op'>|</span>
<span class='id identifier rubyid_msg'>msg</span> <span class='op'>+=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span>
<span class='id identifier rubyid_msg'>msg</span> <span class='op'>+=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\t </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_line'>line</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
<span class='rbrace'>}</span>
<span class='kw'>end</span>
<span class='cvar'>@@console_printer</span><span class='period'>.</span><span class='id identifier rubyid_print_error'>print_error</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="print_error_and_create_response-instance_method">
#<strong>print_error_and_create_response</strong>(error:, message:, code:) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
55
56
57
58</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 55</span>
<span class='kw'>def</span> <span class='id identifier rubyid_print_error_and_create_response'>print_error_and_create_response</span><span class='lparen'>(</span><span class='label'>error:</span> <span class='comma'>,</span> <span class='label'>message:</span><span class='comma'>,</span> <span class='label'>code:</span><span class='rparen'>)</span>
<span class='id identifier rubyid_print_error'>print_error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Error handling request: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_content'>.</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_error'>error</span>
<span class='id identifier rubyid_create_error_response'>create_error_response</span><span class='lparen'>(</span><span class='label'>error:</span> <span class='id identifier rubyid_error'>error</span><span class='comma'>,</span> <span class='label'>message:</span> <span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='label'>code:</span> <span class='id identifier rubyid_code'>code</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="print_good-instance_method">
#<strong>print_good</strong>(msg) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
162
163
164</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 162</span>
<span class='kw'>def</span> <span class='id identifier rubyid_print_good'>print_good</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span><span class='rparen'>)</span>
<span class='cvar'>@@console_printer</span><span class='period'>.</span><span class='id identifier rubyid_print_good'>print_good</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="print_line-instance_method">
#<strong>print_line</strong>(msg) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
154
155
156</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 154</span>
<span class='kw'>def</span> <span class='id identifier rubyid_print_line'>print_line</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span><span class='rparen'>)</span>
<span class='cvar'>@@console_printer</span><span class='period'>.</span><span class='id identifier rubyid_print_line'>print_line</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="print_warning-instance_method">
#<strong>print_warning</strong>(msg) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
158
159
160</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 158</span>
<span class='kw'>def</span> <span class='id identifier rubyid_print_warning'>print_warning</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span><span class='rparen'>)</span>
<span class='cvar'>@@console_printer</span><span class='period'>.</span><span class='id identifier rubyid_print_warning'>print_warning</span><span class='lparen'>(</span><span class='id identifier rubyid_msg'>msg</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="sanitize_params-instance_method">
#<strong>sanitize_params</strong>(params, query_hash = {}) &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Sinatra injects extra parameters for some reason: <a href="https://github.com/sinatra/sinatra/issues/453">github.com/sinatra/sinatra/issues/453</a> This method cleans those up so we dont have any unexpected values before passing on. It also inspects the query string for any invalid parameters.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Parameters:</p>
<ul class="param">
<li>
<span class='name'>params</span>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Hash containing the parameters for the request.</p>
</div>
</li>
<li>
<span class='name'>query_hash</span>
<span class='type'>(<tt>Hash</tt>)</span>
<em class="default">(defaults to: <tt>{}</tt>)</em>
&mdash;
<div class='inline'>
<p>The query_hash variable from the rack request.</p>
</div>
</li>
</ul>
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>Returns params with symbolized keys and the injected parameters removed.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
99
100
101
102
103
104
105
106</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 99</span>
<span class='kw'>def</span> <span class='id identifier rubyid_sanitize_params'>sanitize_params</span><span class='lparen'>(</span><span class='id identifier rubyid_params'>params</span><span class='comma'>,</span> <span class='id identifier rubyid_query_hash'>query_hash</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
<span class='comment'># Reject id passed as a query parameter for GET requests.
</span> <span class='comment'># API standards say path ID should be used for single records.
</span> <span class='kw'>if</span> <span class='id identifier rubyid_query_hash'>query_hash</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>id</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>&#39;id&#39; is not a valid query parameter. Please use /api/v1/&lt;resource&gt;/{ID} instead.</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
<span class='kw'>end</span>
<span class='id identifier rubyid_params'>params</span><span class='period'>.</span><span class='id identifier rubyid_symbolize_keys'>symbolize_keys</span><span class='period'>.</span><span class='id identifier rubyid_except'>except</span><span class='lparen'>(</span><span class='symbol'>:captures</span><span class='comma'>,</span> <span class='symbol'>:splat</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_h'>to_h</span><span class='period'>.</span><span class='id identifier rubyid_symbolize_keys'>symbolize_keys</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="set_empty_response-instance_method">
#<strong>set_empty_response</strong> &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
15
16
17</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 15</span>
<span class='kw'>def</span> <span class='id identifier rubyid_set_empty_response'>set_empty_response</span>
<span class='id identifier rubyid_set_json_data_response'>set_json_data_response</span><span class='lparen'>(</span><span class='label'>response:</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="set_error_on_response-instance_method">
#<strong>set_error_on_response</strong>(error) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
9
10
11
12
13</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 9</span>
<span class='kw'>def</span> <span class='id identifier rubyid_set_error_on_response'>set_error_on_response</span><span class='lparen'>(</span><span class='id identifier rubyid_error'>error</span><span class='rparen'>)</span>
<span class='id identifier rubyid_print_error'>print_error</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Error handling request: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='id identifier rubyid_error'>error</span>
<span class='id identifier rubyid_headers'>headers</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Content-Type</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>text/plain</span><span class='tstring_end'>&#39;</span></span><span class='rbrace'>}</span>
<span class='lbracket'>[</span><span class='int'>500</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='comma'>,</span> <span class='id identifier rubyid_error'>error</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="set_html_response-instance_method">
#<strong>set_html_response</strong>(data) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
39
40
41
42</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 39</span>
<span class='kw'>def</span> <span class='id identifier rubyid_set_html_response'>set_html_response</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span>
<span class='id identifier rubyid_headers'>headers</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Content-Type</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>text/html</span><span class='tstring_end'>&#39;</span></span><span class='rbrace'>}</span>
<span class='lbracket'>[</span><span class='int'>200</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="set_json_data_response-instance_method">
#<strong>set_json_data_response</strong>(response:, includes: nil, code: 200) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
29
30
31
32</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 29</span>
<span class='kw'>def</span> <span class='id identifier rubyid_set_json_data_response'>set_json_data_response</span><span class='lparen'>(</span><span class='label'>response:</span><span class='comma'>,</span> <span class='label'>includes:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>code:</span> <span class='int'>200</span><span class='rparen'>)</span>
<span class='id identifier rubyid_data_response'>data_response</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>data:</span> <span class='id identifier rubyid_response'>response</span> <span class='rbrace'>}</span>
<span class='id identifier rubyid_set_json_response'>set_json_response</span><span class='lparen'>(</span><span class='id identifier rubyid_data_response'>data_response</span><span class='comma'>,</span> <span class='id identifier rubyid_includes'>includes</span> <span class='op'>=</span> <span class='id identifier rubyid_includes'>includes</span><span class='comma'>,</span> <span class='id identifier rubyid_code'>code</span> <span class='op'>=</span> <span class='id identifier rubyid_code'>code</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="set_json_error_response-instance_method">
#<strong>set_json_error_response</strong>(response:, code:) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
34
35
36
37</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 34</span>
<span class='kw'>def</span> <span class='id identifier rubyid_set_json_error_response'>set_json_error_response</span><span class='lparen'>(</span><span class='label'>response:</span><span class='comma'>,</span> <span class='label'>code:</span><span class='rparen'>)</span>
<span class='id identifier rubyid_error_response'>error_response</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='label'>error:</span> <span class='id identifier rubyid_response'>response</span> <span class='rbrace'>}</span>
<span class='id identifier rubyid_set_json_response'>set_json_response</span><span class='lparen'>(</span><span class='id identifier rubyid_error_response'>error_response</span><span class='comma'>,</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_code'>code</span> <span class='op'>=</span> <span class='id identifier rubyid_code'>code</span><span class='rparen'>)</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="set_json_response-instance_method">
#<strong>set_json_response</strong>(data, includes = nil, code = 200) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
24
25
26
27</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 24</span>
<span class='kw'>def</span> <span class='id identifier rubyid_set_json_response'>set_json_response</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_includes'>includes</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_code'>code</span> <span class='op'>=</span> <span class='int'>200</span><span class='rparen'>)</span>
<span class='id identifier rubyid_headers'>headers</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Content-Type</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='lbracket'>[</span><span class='id identifier rubyid_code'>code</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='comma'>,</span> <span class='id identifier rubyid_to_json'>to_json</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_includes'>includes</span><span class='rparen'>)</span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="set_raw_response-instance_method">
#<strong>set_raw_response</strong>(data, code: 200) &#x21d2; <tt>Object</tt>
</h3><table class="source_code">
<tr>
<td>
<pre class="lines">
19
20
21
22</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 19</span>
<span class='kw'>def</span> <span class='id identifier rubyid_set_raw_response'>set_raw_response</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='label'>code:</span> <span class='int'>200</span><span class='rparen'>)</span>
<span class='id identifier rubyid_headers'>headers</span> <span class='op'>=</span> <span class='lbrace'>{</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Content-Type</span><span class='tstring_end'>&#39;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&#39;</span></span> <span class='rbrace'>}</span>
<span class='lbracket'>[</span><span class='id identifier rubyid_code'>code</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="warden-instance_method">
#<strong>warden</strong> &#x21d2; <tt>Warden::Proxy</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Get Warden::Proxy object from the Rack environment.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Warden::Proxy</tt>)</span>
&mdash;
<div class='inline'>
<p>The Warden::Proxy object from the Rack environment.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
144
145
146</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 144</span>
<span class='kw'>def</span> <span class='id identifier rubyid_warden'>warden</span>
<span class='id identifier rubyid_env'>env</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>warden</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
<div class="method_details ">
<h3 class="signature " id="warden_options-instance_method">
#<strong>warden_options</strong> &#x21d2; <tt>Hash</tt>
</h3><div class="docstring">
<div class="discussion">
<p>Get Warden options hash from the Rack environment.</p>
</div>
</div>
<div class="tags">
<p class="tag_title">Returns:</p>
<ul class="return">
<li>
<span class='type'>(<tt>Hash</tt>)</span>
&mdash;
<div class='inline'>
<p>The Warden options hash from the Rack environment.</p>
</div>
</li>
</ul>
</div><table class="source_code">
<tr>
<td>
<pre class="lines">
150
151
152</pre>
</td>
<td>
<pre class="code"><span class="info file"># File 'lib/msf/core/web_services/servlet_helper.rb', line 150</span>
<span class='kw'>def</span> <span class='id identifier rubyid_warden_options'>warden_options</span>
<span class='id identifier rubyid_env'>env</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>warden.options</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
<span class='kw'>end</span></pre>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
Generated on Fri May 8 17:02:08 2026 by
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
0.9.37 (ruby-3.1.5).
</div>
</div>
</body>
</html>