watobo 0.9.21 → 0.9.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +46 -1
- data/bin/nfq_server.rb +0 -9
- data/bin/watobo_gui.rb +3 -13
- data/custom-views/prettify-json.rb +9 -18
- data/icons/watobo.ico +0 -0
- data/icons/watobo.ico.old +0 -0
- data/lib/watobo.rb +10 -19
- data/lib/watobo/adapters.rb +5 -14
- data/lib/watobo/adapters/data_store.rb +50 -59
- data/lib/watobo/adapters/file/file_store.rb +287 -296
- data/lib/watobo/adapters/file/marshal_store.rb +293 -296
- data/lib/watobo/adapters/session_store.rb +5 -14
- data/lib/watobo/ca.rb +1 -10
- data/lib/watobo/config.rb +197 -206
- data/lib/watobo/constants.rb +0 -9
- data/lib/watobo/core.rb +3 -12
- data/lib/watobo/core/active_check.rb +72 -135
- data/lib/watobo/core/active_checks.rb +49 -58
- data/lib/watobo/core/ca.rb +369 -389
- data/lib/watobo/core/cert_store.rb +34 -43
- data/lib/watobo/core/chat.rb +92 -101
- data/lib/watobo/core/chats.rb +271 -280
- data/lib/watobo/core/client_cert_store.rb +106 -35
- data/lib/watobo/core/conversation.rb +48 -57
- data/lib/watobo/core/cookie.rb +23 -32
- data/lib/watobo/core/egress_handlers.rb +98 -0
- data/lib/watobo/core/finding.rb +66 -75
- data/lib/watobo/core/findings.rb +107 -114
- data/lib/watobo/core/forwarding_proxy.rb +13 -22
- data/lib/watobo/core/fuzz_gen.rb +0 -9
- data/lib/watobo/core/intercept_carver.rb +166 -177
- data/lib/watobo/core/intercept_filter.rb +235 -244
- data/lib/watobo/core/interceptor.rb +98 -107
- data/lib/watobo/core/min_class.rb +4 -13
- data/lib/watobo/core/netfilter_queue.rb +170 -179
- data/lib/watobo/core/ott_cache.rb +132 -141
- data/lib/watobo/core/parameter.rb +43 -52
- data/lib/watobo/core/passive_check.rb +103 -102
- data/lib/watobo/core/passive_checks.rb +48 -57
- data/lib/watobo/core/passive_scanner.rb +54 -55
- data/lib/watobo/core/plugin.rb +11 -20
- data/lib/watobo/core/project.rb +3 -9
- data/lib/watobo/core/proxy.rb +43 -52
- data/lib/watobo/core/request.rb +125 -123
- data/lib/watobo/core/response.rb +44 -53
- data/lib/watobo/core/scanner.rb +0 -9
- data/lib/watobo/core/scanner3.rb +405 -414
- data/lib/watobo/core/scope.rb +83 -92
- data/lib/watobo/core/session.rb +1043 -1026
- data/lib/watobo/core/sid_cache.rb +98 -107
- data/lib/watobo/core/subscriber.rb +25 -34
- data/lib/watobo/defaults.rb +21 -30
- data/lib/watobo/external/diff/lcs.rb +0 -9
- data/lib/watobo/external/diff/lcs/array.rb +0 -9
- data/lib/watobo/external/diff/lcs/block.rb +0 -9
- data/lib/watobo/external/diff/lcs/callbacks.rb +0 -9
- data/lib/watobo/external/diff/lcs/change.rb +0 -9
- data/lib/watobo/external/diff/lcs/hunk.rb +0 -9
- data/lib/watobo/external/diff/lcs/ldiff.rb +0 -9
- data/lib/watobo/external/diff/lcs/string.rb +0 -9
- data/lib/watobo/externals.rb +6 -15
- data/lib/watobo/framework.rb +4 -13
- data/lib/watobo/framework/create_project.rb +60 -69
- data/lib/watobo/framework/init.rb +0 -9
- data/lib/watobo/framework/init_modules.rb +0 -9
- data/lib/watobo/framework/license_text.rb +28 -37
- data/lib/watobo/framework/load_chat.rb +13 -22
- data/lib/watobo/gui.rb +132 -123
- data/lib/watobo/gui/about_watobo.rb +0 -9
- data/lib/watobo/gui/browser_preview.rb +0 -9
- data/lib/watobo/gui/certificate_dialog.rb +0 -9
- data/lib/watobo/gui/chat_diff.rb +0 -9
- data/lib/watobo/gui/chatviewer_frame.rb +73 -72
- data/lib/watobo/gui/checkboxtree.rb +0 -9
- data/lib/watobo/gui/checks_policy_frame.rb +0 -9
- data/lib/watobo/gui/client_cert_dialog.rb +96 -87
- data/lib/watobo/gui/confirm_scan_dialog.rb +0 -9
- data/lib/watobo/gui/conversation_table.rb +158 -164
- data/lib/watobo/gui/conversation_table_ctrl.rb +207 -216
- data/lib/watobo/gui/conversation_table_ctrl2.rb +373 -382
- data/lib/watobo/gui/csrf_token_dialog.rb +0 -9
- data/lib/watobo/gui/custom_viewer.rb +374 -383
- data/lib/watobo/gui/dashboard.rb +296 -303
- data/lib/watobo/gui/define_scope_frame.rb +0 -9
- data/lib/watobo/gui/differ_frame.rb +215 -224
- data/lib/watobo/gui/edit_comment.rb +0 -9
- data/lib/watobo/gui/edit_scope_dialog.rb +0 -9
- data/lib/watobo/gui/export_dialog.rb +104 -113
- data/lib/watobo/gui/finding_info.rb +0 -9
- data/lib/watobo/gui/findings_tree.rb +210 -217
- data/lib/watobo/gui/full_scan_dialog.rb +0 -9
- data/lib/watobo/gui/fuzzer_gui.rb +1295 -1313
- data/lib/watobo/gui/fxsave_thread.rb +14 -0
- data/lib/watobo/gui/goto_url_dialog.rb +70 -79
- data/lib/watobo/gui/hex_viewer.rb +0 -9
- data/lib/watobo/gui/html_viewer.rb +287 -296
- data/lib/watobo/gui/intercept_filter_dialog.rb +188 -197
- data/lib/watobo/gui/interceptor_gui.rb +1041 -1051
- data/lib/watobo/gui/interceptor_settings_dialog.rb +0 -9
- data/lib/watobo/gui/json_viewer.rb +287 -0
- data/lib/watobo/gui/list_box.rb +101 -110
- data/lib/watobo/gui/log_file_viewer.rb +32 -41
- data/lib/watobo/gui/log_viewer.rb +83 -88
- data/lib/watobo/gui/login_wizzard.rb +0 -9
- data/lib/watobo/gui/main_window.rb +587 -618
- data/lib/watobo/gui/manual_request_editor.rb +620 -565
- data/lib/watobo/gui/master_pw_dialog.rb +0 -9
- data/lib/watobo/gui/mixins/gui_settings.rb +29 -38
- data/lib/watobo/gui/page_tree.rb +217 -226
- data/lib/watobo/gui/password_policy_dialog.rb +0 -9
- data/lib/watobo/gui/plugin_board.rb +0 -9
- data/lib/watobo/gui/preferences_dialog.rb +0 -9
- data/lib/watobo/gui/progress_window.rb +17 -27
- data/lib/watobo/gui/project_wizzard.rb +0 -9
- data/lib/watobo/gui/proxy_dialog.rb +1 -10
- data/lib/watobo/gui/quick_scan_dialog.rb +0 -9
- data/lib/watobo/gui/request_builder_frame.rb +102 -111
- data/lib/watobo/gui/request_editor.rb +181 -137
- data/lib/watobo/gui/rewrite_filters_dialog.rb +394 -403
- data/lib/watobo/gui/rewrite_rules_dialog.rb +372 -381
- data/lib/watobo/gui/save_chat_dialog.rb +140 -149
- data/lib/watobo/gui/scanner_settings_dialog.rb +0 -9
- data/lib/watobo/gui/select_chat_dialog.rb +0 -9
- data/lib/watobo/gui/session_management_dialog.rb +0 -9
- data/lib/watobo/gui/sites_tree.rb +0 -9
- data/lib/watobo/gui/status_bar.rb +0 -9
- data/lib/watobo/gui/table_editor.rb +0 -9
- data/lib/watobo/gui/tagless_viewer.rb +0 -9
- data/lib/watobo/gui/templates/plugin.rb +0 -9
- data/lib/watobo/gui/templates/plugin2.rb +92 -100
- data/lib/watobo/gui/templates/plugin_base.rb +144 -153
- data/lib/watobo/gui/text_viewer.rb +0 -9
- data/lib/watobo/gui/transcoder_window.rb +0 -9
- data/lib/watobo/gui/utils/gui_utils.rb +0 -9
- data/lib/watobo/gui/utils/init_icons.rb +86 -95
- data/lib/watobo/gui/utils/load_icons.rb +33 -42
- data/lib/watobo/gui/utils/load_plugins.rb +116 -119
- data/lib/watobo/gui/utils/master_password.rb +68 -77
- data/lib/watobo/gui/utils/save_default_settings.rb +113 -122
- data/lib/watobo/gui/utils/save_project_settings.rb +0 -9
- data/lib/watobo/gui/utils/save_proxy_settings.rb +41 -50
- data/lib/watobo/gui/utils/save_scanner_settings.rb +18 -27
- data/lib/watobo/gui/utils/session_history.rb +112 -121
- data/lib/watobo/gui/workspace_dialog.rb +0 -9
- data/lib/watobo/gui/www_auth_dialog.rb +0 -9
- data/lib/watobo/gui/xml_viewer_frame.rb +0 -9
- data/lib/watobo/http.rb +4 -13
- data/lib/watobo/http/cookies/cookies.rb +26 -35
- data/lib/watobo/http/data/data.rb +45 -54
- data/lib/watobo/http/data/json.rb +47 -55
- data/lib/watobo/http/url/url.rb +38 -47
- data/lib/watobo/http/xml/xml.rb +124 -130
- data/lib/watobo/interceptor.rb +3 -12
- data/lib/watobo/interceptor/proxy.rb +742 -739
- data/lib/watobo/interceptor/transparent.rb +22 -24
- data/lib/watobo/mixins.rb +10 -19
- data/lib/watobo/mixins/check_info.rb +27 -36
- data/lib/watobo/mixins/httpparser.rb +613 -637
- data/lib/watobo/mixins/request_parser.rb +88 -97
- data/lib/watobo/mixins/shapers.rb +515 -529
- data/lib/watobo/mixins/transcoders.rb +3 -11
- data/lib/watobo/parser.rb +1 -10
- data/lib/watobo/parser/html.rb +83 -92
- data/lib/watobo/patch_fxruby_setfocus.rb +26 -0
- data/lib/watobo/sockets.rb +3 -12
- data/lib/watobo/sockets/agent.rb +828 -837
- data/lib/watobo/sockets/client_socket.rb +308 -312
- data/lib/watobo/sockets/connection.rb +401 -410
- data/lib/watobo/sockets/http_socket.rb +11 -13
- data/lib/watobo/sockets/ntlm_auth.rb +129 -138
- data/lib/watobo/utils.rb +10 -19
- data/lib/watobo/utils/check_regex.rb +0 -9
- data/lib/watobo/utils/copy_object.rb +0 -9
- data/lib/watobo/utils/crypto.rb +0 -9
- data/lib/watobo/utils/expand_range.rb +23 -32
- data/lib/watobo/utils/export_xml.rb +97 -106
- data/lib/watobo/utils/file_management.rb +9 -11
- data/lib/watobo/utils/hexprint.rb +9 -18
- data/lib/watobo/utils/load_chat.rb +0 -9
- data/lib/watobo/utils/load_icon.rb +0 -9
- data/lib/watobo/utils/ntlm.rb +866 -875
- data/lib/watobo/utils/print_debug.rb +12 -21
- data/lib/watobo/utils/response_builder.rb +90 -99
- data/lib/watobo/utils/response_hash.rb +0 -9
- data/lib/watobo/utils/secure_eval.rb +0 -9
- data/lib/watobo/utils/strings.rb +10 -19
- data/lib/watobo/utils/text2request.rb +0 -9
- data/lib/watobo/utils/url.rb +23 -32
- data/lib/watobo/utils/utf16.rb +11 -20
- data/modules/active/Apache/mod_status.rb +0 -9
- data/modules/active/Apache/multiview.rb +151 -160
- data/modules/active/Flash/crossdomain.rb +0 -9
- data/modules/active/JWT/jwt_oauth2_none.rb +111 -0
- data/modules/active/cq5/cq5_default_selectors.rb +106 -115
- data/modules/active/cq5/cqp_user_enumeration.rb +125 -134
- data/modules/active/directories/dirwalker.rb +0 -9
- data/modules/active/discovery/fileextensions.rb +0 -9
- data/modules/active/discovery/http_methods.rb +0 -9
- data/modules/active/discovery/jsmapfiles.rb +79 -0
- data/modules/active/domino/domino_db.rb +68 -76
- data/modules/active/dotNET/custom_errors.rb +102 -111
- data/modules/active/dotNET/dotnet_files.rb +90 -99
- data/modules/active/fileinclusion/lfi_simple.rb +0 -9
- data/modules/active/jboss/jboss_basic.rb +0 -9
- data/modules/active/sap/business_objects.rb +51 -60
- data/modules/active/sap/its_commands.rb +0 -9
- data/modules/active/sap/its_service_parameter.rb +0 -9
- data/modules/active/sap/its_services.rb +0 -9
- data/modules/active/sap/its_xss.rb +0 -9
- data/modules/active/shell_shock/shell_shock.rb +139 -148
- data/modules/active/siebel/siebel_apps.rb +160 -169
- data/modules/active/sqlinjection/sql_boolean.rb +0 -9
- data/modules/active/sqlinjection/sql_numerical.rb +198 -0
- data/modules/active/sqlinjection/sqli_error.rb +0 -9
- data/modules/active/sqlinjection/sqli_timing.rb +220 -229
- data/modules/active/struts2/default_handler_ognl.rb +106 -115
- data/modules/active/struts2/include_params_ognl.rb +105 -114
- data/modules/active/xml/xml_xxe.rb +112 -123
- data/modules/active/xss/xss_ng.rb +214 -223
- data/modules/active/xss/xss_simple.rb +0 -9
- data/modules/passive/ajax.rb +68 -77
- data/modules/passive/autocomplete.rb +56 -65
- data/modules/passive/cookie_options.rb +0 -9
- data/modules/passive/cookie_xss.rb +0 -9
- data/modules/passive/detect_code.rb +0 -9
- data/modules/passive/detect_fileupload.rb +0 -9
- data/modules/passive/detect_infrastructure.rb +0 -9
- data/modules/passive/detect_one_time_tokens.rb +0 -9
- data/modules/passive/dirindexing.rb +0 -9
- data/modules/passive/disclosure_domino.rb +55 -64
- data/modules/passive/disclosure_emails.rb +0 -9
- data/modules/passive/disclosure_ipaddr.rb +55 -53
- data/modules/passive/filename_as_parameter.rb +0 -9
- data/modules/passive/form_spotter.rb +0 -9
- data/modules/passive/hidden_fields.rb +50 -59
- data/modules/passive/hotspots.rb +0 -9
- data/modules/passive/in_script_parameter.rb +0 -9
- data/modules/passive/json_web_token.rb +93 -0
- data/modules/passive/multiple_server_headers.rb +0 -9
- data/modules/passive/possible_login.rb +0 -9
- data/modules/passive/redirect_url.rb +0 -9
- data/modules/passive/redirectionz.rb +0 -9
- data/modules/passive/sap-headers.rb +56 -65
- data/modules/passive/xss_dom.rb +0 -9
- data/plugins/aem/aem.rb +11 -20
- data/plugins/aem/gui/main.rb +118 -127
- data/plugins/aem/gui/tree_view.rb +171 -180
- data/plugins/aem/lib/agent.rb +130 -138
- data/plugins/aem/lib/dispatcher.rb +45 -51
- data/plugins/aem/lib/engine.rb +177 -186
- data/plugins/catalog/catalog.rb +345 -355
- data/plugins/crawler/crawler.rb +4 -13
- data/plugins/crawler/gui.rb +5 -14
- data/plugins/crawler/gui/auth_frame.rb +270 -279
- data/plugins/crawler/gui/crawler_gui.rb +271 -276
- data/plugins/crawler/gui/general_settings_frame.rb +96 -105
- data/plugins/crawler/gui/hooks_frame.rb +80 -89
- data/plugins/crawler/gui/scope_frame.rb +50 -59
- data/plugins/crawler/gui/settings_tabbook.rb +38 -47
- data/plugins/crawler/gui/status_frame.rb +59 -68
- data/plugins/crawler/lib/bags.rb +18 -27
- data/plugins/crawler/lib/constants.rb +11 -20
- data/plugins/crawler/lib/engine.rb +488 -497
- data/plugins/crawler/lib/grabber.rb +68 -77
- data/plugins/crawler/lib/status.rb +71 -80
- data/plugins/crawler/lib/uri_mp.rb +12 -21
- data/plugins/filefinder/filefinder.rb +326 -333
- data/plugins/sqlmap/bin/test.rb +78 -87
- data/plugins/sqlmap/gui.rb +4 -13
- data/plugins/sqlmap/gui/main.rb +218 -227
- data/plugins/sqlmap/gui/options_frame.rb +97 -106
- data/plugins/sqlmap/lib/sqlmap_ctrl.rb +90 -100
- data/plugins/sqlmap/sqlmap.rb +2 -11
- data/plugins/sslchecker/cli/sslchecker_cli.rb +0 -9
- data/plugins/sslchecker/gui/cipher_table.rb +246 -254
- data/plugins/sslchecker/gui/gui.rb +258 -264
- data/plugins/sslchecker/gui/sslchecker.rb +4 -13
- data/plugins/sslchecker/lib/check.rb +127 -133
- data/plugins/wshell/gui/main.rb +119 -117
- data/plugins/wshell/lib/core.rb +38 -88
- data/plugins/wshell/wshell.rb +11 -20
- metadata +170 -164
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
#.
|
|
2
|
-
# workspace_dialog.rb
|
|
3
|
-
#.
|
|
4
|
-
# Copyright 2014 by siberas, http://www.siberas.de
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
1
|
# @private
|
|
11
2
|
module Watobo#:nodoc: all
|
|
12
3
|
module Gui
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
#.
|
|
2
|
-
# www_auth_dialog.rb
|
|
3
|
-
#.
|
|
4
|
-
# Copyright 2014 by siberas, http://www.siberas.de
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
1
|
# @private
|
|
11
2
|
module Watobo#:nodoc: all
|
|
12
3
|
module Gui
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
#.
|
|
2
|
-
# xml_viewer_frame.rb
|
|
3
|
-
#.
|
|
4
|
-
# Copyright 2014 by siberas, http://www.siberas.de
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
1
|
#
|
|
11
2
|
# XML/SOAP Resources
|
|
12
3
|
#
|
data/lib/watobo/http.rb
CHANGED
|
@@ -1,14 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
|
-
require 'watobo/http/data/data'
|
|
11
|
-
require 'watobo/http/data/json'
|
|
12
|
-
require 'watobo/http/url/url'
|
|
13
|
-
require 'watobo/http/cookies/cookies'
|
|
1
|
+
require 'watobo/http/data/data'
|
|
2
|
+
require 'watobo/http/data/json'
|
|
3
|
+
require 'watobo/http/url/url'
|
|
4
|
+
require 'watobo/http/cookies/cookies'
|
|
14
5
|
require 'watobo/http/xml/xml'
|
|
@@ -1,22 +1,13 @@
|
|
|
1
|
-
#.
|
|
2
|
-
# cookies.rb
|
|
3
|
-
#.
|
|
4
|
-
# Copyright 2014 by siberas, http://www.siberas.de
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
1
|
# @private
|
|
11
|
-
module Watobo#:nodoc: all
|
|
12
|
-
module HTTP
|
|
13
|
-
class Cookies
|
|
2
|
+
module Watobo#:nodoc: all
|
|
3
|
+
module HTTP
|
|
4
|
+
class Cookies
|
|
14
5
|
def to_s
|
|
15
|
-
s = []
|
|
6
|
+
s = []
|
|
16
7
|
@cookies.each_value do |v|
|
|
17
8
|
s << "#{v.name}=#{v.value}"
|
|
18
9
|
end
|
|
19
|
-
s.join("; ")
|
|
10
|
+
s.join("; ")
|
|
20
11
|
end
|
|
21
12
|
|
|
22
13
|
def inspect
|
|
@@ -35,36 +26,36 @@ module Watobo#:nodoc: all
|
|
|
35
26
|
@cookies.each_value do |cookie|
|
|
36
27
|
yield cookie if block_given?
|
|
37
28
|
end
|
|
38
|
-
end
|
|
29
|
+
end
|
|
39
30
|
|
|
40
31
|
def set(parm)
|
|
41
32
|
@cookies[parm.name.to_sym] = parm
|
|
42
|
-
@root.set_header("Cookie", self.to_s)
|
|
43
|
-
end
|
|
33
|
+
@root.set_header("Cookie", self.to_s)
|
|
34
|
+
end
|
|
44
35
|
|
|
45
|
-
def has_parm?(parm_name)
|
|
46
|
-
false
|
|
36
|
+
def has_parm?(parm_name)
|
|
37
|
+
false
|
|
47
38
|
end
|
|
48
39
|
|
|
49
|
-
#def
|
|
40
|
+
#def
|
|
50
41
|
|
|
51
|
-
def parameters(&block)
|
|
52
|
-
params = []
|
|
42
|
+
def parameters(&block)
|
|
43
|
+
params = []
|
|
53
44
|
raw_cookies do |cprefs|
|
|
54
45
|
cookie = Watobo::CookieParameter.new(cprefs)
|
|
55
|
-
yield cookie if block_given?
|
|
56
|
-
params << cookie
|
|
57
|
-
|
|
58
|
-
end
|
|
59
|
-
params
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def initialize(root)
|
|
46
|
+
yield cookie if block_given?
|
|
47
|
+
params << cookie
|
|
48
|
+
|
|
49
|
+
end
|
|
50
|
+
params
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def initialize(root)
|
|
63
54
|
@root = root
|
|
64
55
|
@cookies = {}
|
|
65
56
|
|
|
66
|
-
init_cookies
|
|
67
|
-
|
|
57
|
+
init_cookies
|
|
58
|
+
|
|
68
59
|
end
|
|
69
60
|
|
|
70
61
|
private
|
|
@@ -112,13 +103,13 @@ module Watobo#:nodoc: all
|
|
|
112
103
|
|
|
113
104
|
return rcs
|
|
114
105
|
|
|
115
|
-
end
|
|
106
|
+
end
|
|
116
107
|
|
|
117
108
|
module Mixin
|
|
118
109
|
def cookies
|
|
119
110
|
@cookies ||= Cookies.new(self)
|
|
120
111
|
end
|
|
121
112
|
end
|
|
122
|
-
end
|
|
123
|
-
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
124
115
|
end
|
|
@@ -1,60 +1,51 @@
|
|
|
1
|
-
#.
|
|
2
|
-
# data.rb
|
|
3
|
-
#.
|
|
4
|
-
# Copyright 2014 by siberas, http://www.siberas.de
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
1
|
# @private
|
|
11
|
-
module Watobo#:nodoc: all
|
|
12
|
-
module HTTPData
|
|
13
|
-
class Base
|
|
14
|
-
def to_s
|
|
15
|
-
s = @root.body.nil? ? "" : @root.body
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def initialize(root)
|
|
19
|
-
@root = root
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
class WWW_Form < Base
|
|
24
|
-
def set(parm)
|
|
25
|
-
if has_parm?(parm.name)
|
|
26
|
-
@root.replace_post_parm(parm.name, parm.value)
|
|
27
|
-
else
|
|
28
|
-
@root.add_post_parm(parm.name, parm.value)
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def has_parm?(parm_name)
|
|
33
|
-
@root.post_parm_names do |pn|
|
|
34
|
-
return true if pn == parm_name
|
|
35
|
-
end
|
|
36
|
-
false
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def parameters(&block)
|
|
40
|
-
parms = []
|
|
2
|
+
module Watobo#:nodoc: all
|
|
3
|
+
module HTTPData
|
|
4
|
+
class Base
|
|
5
|
+
def to_s
|
|
6
|
+
s = @root.body.nil? ? "" : @root.body
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def initialize(root)
|
|
10
|
+
@root = root
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
class WWW_Form < Base
|
|
15
|
+
def set(parm)
|
|
16
|
+
if has_parm?(parm.name)
|
|
17
|
+
@root.replace_post_parm(parm.name, parm.value)
|
|
18
|
+
else
|
|
19
|
+
@root.add_post_parm(parm.name, parm.value)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def has_parm?(parm_name)
|
|
24
|
+
@root.post_parm_names do |pn|
|
|
25
|
+
return true if pn == parm_name
|
|
26
|
+
end
|
|
27
|
+
false
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def parameters(&block)
|
|
31
|
+
parms = []
|
|
41
32
|
@root.post_parms.each do |p|
|
|
42
33
|
nvsi = p.index("=")
|
|
43
|
-
unless nvsi.nil?
|
|
34
|
+
unless nvsi.nil?
|
|
44
35
|
name = nvsi > 0 ? p[0..nvsi-1] : ""
|
|
45
|
-
val = nvsi < (p.length-1) ? p[nvsi+1..-1] : ""
|
|
36
|
+
val = nvsi < (p.length-1) ? p[nvsi+1..-1] : ""
|
|
46
37
|
parms << Watobo::WWWFormParameter.new( :name => name, :value => val )
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
parms
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def initialize(root)
|
|
53
|
-
super root
|
|
54
|
-
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
end
|
|
59
|
-
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
parms
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def initialize(root)
|
|
44
|
+
super root
|
|
45
|
+
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
end
|
|
50
|
+
|
|
60
51
|
end
|
|
@@ -1,57 +1,49 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
# @private
|
|
2
|
+
module Watobo#:nodoc: all
|
|
3
|
+
module HTTPData
|
|
4
|
+
|
|
5
|
+
class JSONData < Base
|
|
6
|
+
|
|
7
|
+
def to_s
|
|
8
|
+
s = @root.body.nil? ? "" : @root.body
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def set(parm)
|
|
12
|
+
parms = JSON.parse(@root.body.to_s)
|
|
13
|
+
parms[parm.name] = parm.value
|
|
14
|
+
@root.set_body parms.to_json
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def has_parm?(parm_name)
|
|
18
|
+
parms = JSON.parse(@root.body.to_s)
|
|
19
|
+
return true if parms.has_key? parm_name
|
|
20
|
+
false
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def parameters(&block)
|
|
24
|
+
parms = []
|
|
25
|
+
json_str = @root.body.to_s
|
|
26
|
+
return parms if json_str.empty?
|
|
27
|
+
|
|
28
|
+
begin
|
|
29
|
+
JSON.parse(json_str).each do |k,v|
|
|
30
|
+
val = v.is_a?(String) ? v : v.to_s
|
|
31
|
+
parms << Watobo::JSONParameter.new( :name => k, :value => val )
|
|
32
|
+
end
|
|
33
|
+
rescue => bang
|
|
34
|
+
puts "! could not parse JSON parameters !"
|
|
35
|
+
puts @root.headers
|
|
36
|
+
puts json_str.gsub(/[^[:print:]]/, '.')
|
|
37
|
+
end
|
|
38
|
+
parms
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def initialize(root)
|
|
42
|
+
super root
|
|
43
|
+
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|
|
9
48
|
|
|
10
|
-
# @private
|
|
11
|
-
module Watobo#:nodoc: all
|
|
12
|
-
module HTTPData
|
|
13
|
-
|
|
14
|
-
class JSONData < Base
|
|
15
|
-
|
|
16
|
-
def to_s
|
|
17
|
-
s = @root.body.nil? ? "" : @root.body
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def set(parm)
|
|
21
|
-
parms = JSON.parse(@root.body.to_s)
|
|
22
|
-
parms[parm.name] = parm.value
|
|
23
|
-
@root.set_body parms.to_json
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def has_parm?(parm_name)
|
|
27
|
-
parms = JSON.parse(@root.body.to_s)
|
|
28
|
-
return true if parms.has_key? parm_name
|
|
29
|
-
false
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def parameters(&block)
|
|
33
|
-
parms = []
|
|
34
|
-
json_str = @root.body.to_s
|
|
35
|
-
|
|
36
|
-
begin
|
|
37
|
-
JSON.parse(json_str).each do |k,v|
|
|
38
|
-
val = v.is_a?(String) ? v : v.to_s
|
|
39
|
-
parms << Watobo::JSONParameter.new( :name => k, :value => val )
|
|
40
|
-
end
|
|
41
|
-
rescue => bang
|
|
42
|
-
puts "! could not parse JSON parameters !"
|
|
43
|
-
puts @root.headers
|
|
44
|
-
puts json_str.gsub(/[^[:print:]]/, '.')
|
|
45
|
-
end
|
|
46
|
-
parms
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def initialize(root)
|
|
50
|
-
super root
|
|
51
|
-
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
end
|
|
56
|
-
|
|
57
49
|
end
|
data/lib/watobo/http/url/url.rb
CHANGED
|
@@ -1,52 +1,43 @@
|
|
|
1
|
-
#.
|
|
2
|
-
# url.rb
|
|
3
|
-
#.
|
|
4
|
-
# Copyright 2014 by siberas, http://www.siberas.de
|
|
5
|
-
# This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
|
|
6
|
-
# WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
|
|
7
|
-
# WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
8
|
-
# You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
9
|
-
|
|
10
1
|
# @private
|
|
11
|
-
module Watobo#:nodoc: all
|
|
12
|
-
module HTTP
|
|
13
|
-
class Url
|
|
14
|
-
def to_s
|
|
15
|
-
s = @root.url_string
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
def set(parm)
|
|
20
|
-
if has_parm?(parm.name)
|
|
21
|
-
@root.replace_get_parm(parm.name, parm.value)
|
|
22
|
-
else
|
|
23
|
-
@root.add_get_parm(parm.name, parm.value)
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def has_parm?(parm_name)
|
|
28
|
-
@root.get_parm_names do |pn|
|
|
29
|
-
return true if pn == parm_name
|
|
30
|
-
end
|
|
31
|
-
false
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def parameters(&block)
|
|
35
|
-
parms = []
|
|
2
|
+
module Watobo#:nodoc: all
|
|
3
|
+
module HTTP
|
|
4
|
+
class Url
|
|
5
|
+
def to_s
|
|
6
|
+
s = @root.url_string
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def set(parm)
|
|
11
|
+
if has_parm?(parm.name)
|
|
12
|
+
@root.replace_get_parm(parm.name, parm.value)
|
|
13
|
+
else
|
|
14
|
+
@root.add_get_parm(parm.name, parm.value)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def has_parm?(parm_name)
|
|
19
|
+
@root.get_parm_names do |pn|
|
|
20
|
+
return true if pn == parm_name
|
|
21
|
+
end
|
|
22
|
+
false
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def parameters(&block)
|
|
26
|
+
parms = []
|
|
36
27
|
@root.get_parms.each do |p|
|
|
37
28
|
p.strip!
|
|
38
|
-
i = p.index("=")
|
|
29
|
+
i = p.index("=")
|
|
39
30
|
name = p[0..i-1]
|
|
40
|
-
val = i < p.length ? p[i+1..-1] : ""
|
|
41
|
-
parms << Watobo::UrlParameter.new( :name => name, :value => val )
|
|
42
|
-
end
|
|
43
|
-
parms
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def initialize(root)
|
|
47
|
-
@root = root
|
|
48
|
-
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
31
|
+
val = i < p.length ? p[i+1..-1] : ""
|
|
32
|
+
parms << Watobo::UrlParameter.new( :name => name, :value => val )
|
|
33
|
+
end
|
|
34
|
+
parms
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def initialize(root)
|
|
38
|
+
@root = root
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
52
43
|
end
|