From 422e2d04027e73bf31aa7d4137a7df5c634bea8e Mon Sep 17 00:00:00 2001 From: Simon Kurz Date: Fri, 18 Apr 2025 10:38:43 -0400 Subject: [PATCH] Add option to disable warnings if message is unprocessable --- src/main/java/com/coreyd97/stepper/Globals.java | 1 + .../java/com/coreyd97/stepper/MessageProcessor.java | 13 +++++++------ .../preferences/StepperPreferenceFactory.java | 1 + .../stepper/preferences/view/OptionsPanel.java | 1 + 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/coreyd97/stepper/Globals.java b/src/main/java/com/coreyd97/stepper/Globals.java index de889ea..14de354 100644 --- a/src/main/java/com/coreyd97/stepper/Globals.java +++ b/src/main/java/com/coreyd97/stepper/Globals.java @@ -15,4 +15,5 @@ public class Globals { public static final String PREF_VARS_IN_SPIDER = "enableVarsInSpider"; public static final String PREF_UPDATE_REQUEST_LENGTH = "updateRequestLength"; public static final String PREF_ENABLE_SHORTCUT = "enableShortcut"; + public static final String PREF_ENABLE_UNPROCESSABLE_WARNING = "enableUnprocessableWarning"; } diff --git a/src/main/java/com/coreyd97/stepper/MessageProcessor.java b/src/main/java/com/coreyd97/stepper/MessageProcessor.java index d039891..10c84bd 100644 --- a/src/main/java/com/coreyd97/stepper/MessageProcessor.java +++ b/src/main/java/com/coreyd97/stepper/MessageProcessor.java @@ -93,14 +93,15 @@ public void processHttpMessage(int toolFlag, boolean messageIsRequest, IHttpRequ HashMap> allVariables = sequenceManager.getRollingVariablesFromAllSequences(); if(allVariables.size() > 0 && hasStepVariable(request)) { - - if(isUnprocessable(messageInfo.getRequest())){ + if(isUnprocessable(messageInfo.getRequest()) && Stepper.getPreferences().getSetting(Globals.PREF_ENABLE_UNPROCESSABLE_WARNING).equals(true)){ //If there's unicode issues, we're likely acting on binary data. Warn the user. + //But only warn user if they did not disable this warning. + //In some cases, especially if Stepper is used together with Param Miner, these warnings can popup often int result = JOptionPane.showConfirmDialog(Stepper.getUI().getUiComponent(), - "The request contains non UTF characters.\nStepper is able to make the replacements, " + - "but some of the binary data may be lost. Continue?", - "Stepper Replacement Error", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE); - if(result == JOptionPane.NO_OPTION) return; + "The request contains non UTF characters.\nStepper is able to make the replacements, " + + "but some of the binary data may be lost. Continue?", + "Stepper Replacement Error", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE); + if(result == JOptionPane.NO_OPTION) return; } try { diff --git a/src/main/java/com/coreyd97/stepper/preferences/StepperPreferenceFactory.java b/src/main/java/com/coreyd97/stepper/preferences/StepperPreferenceFactory.java index 3fc7da4..2c7f61c 100644 --- a/src/main/java/com/coreyd97/stepper/preferences/StepperPreferenceFactory.java +++ b/src/main/java/com/coreyd97/stepper/preferences/StepperPreferenceFactory.java @@ -64,5 +64,6 @@ protected void registerSettings() { prefs.registerSetting(Globals.PREF_VARS_IN_SCANNER, Boolean.class, true, Preferences.Visibility.GLOBAL); prefs.registerSetting(Globals.PREF_UPDATE_REQUEST_LENGTH, Boolean.class, true, Preferences.Visibility.GLOBAL); prefs.registerSetting(Globals.PREF_ENABLE_SHORTCUT, Boolean.class, true, Preferences.Visibility.GLOBAL); + prefs.registerSetting(Globals.PREF_ENABLE_UNPROCESSABLE_WARNING, Boolean.class, true, Preferences.Visibility.GLOBAL); } } diff --git a/src/main/java/com/coreyd97/stepper/preferences/view/OptionsPanel.java b/src/main/java/com/coreyd97/stepper/preferences/view/OptionsPanel.java index 9515a4c..c718322 100644 --- a/src/main/java/com/coreyd97/stepper/preferences/view/OptionsPanel.java +++ b/src/main/java/com/coreyd97/stepper/preferences/view/OptionsPanel.java @@ -36,6 +36,7 @@ private void buildPanel() { ComponentGroup configGroup = new ComponentGroup(ComponentGroup.Orientation.VERTICAL, "Config"); configGroup.addPreferenceComponent(preferences, Globals.PREF_UPDATE_REQUEST_LENGTH, "Automatically update the Content-Length header"); configGroup.addPreferenceComponent(preferences, Globals.PREF_ENABLE_SHORTCUT, "Enable Shortcut (Ctrl+Shift+G)"); + configGroup.addPreferenceComponent(preferences, Globals.PREF_ENABLE_UNPROCESSABLE_WARNING, "Enable warning if non UTF-8 character in request"); ComponentGroup toolEnabledGroup = new ComponentGroup(ComponentGroup.Orientation.VERTICAL, "Allow Variables Usage"); JCheckBox allToolsCheckbox = toolEnabledGroup.addPreferenceComponent(preferences, Globals.PREF_VARS_IN_ALL_TOOLS, "All Tools");