Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix middleware app setting checks #468

Conversation

delano
Copy link
Collaborator

@delano delano commented Jul 13, 2024

User description

A change has been made to how middleware checks for Otto app settings to determine if percent encoding and UTF-8 validation should be applied. Previously, the check returned true if the app had settings defined, but this allowed validation to be applied even if the specific setting was disabled. The changes now only return true if both the app has settings AND the relevant setting is explicitly enabled, avoiding unnecessary validation.

Include new AppSettings in web, colonel apps


PR Type

Bug fix, Enhancement


Description

  • Fixed middleware checks for Otto app settings to ensure percent encoding and UTF-8 validation are only applied if the relevant settings are explicitly enabled.
  • Included AppSettings module in both Colonel and Web apps.
  • Added necessary require statements for base.rb in Colonel and Web apps.

Changes walkthrough 📝

Relevant files
Bug fix
handle_invalid_percent_encoding.rb
Fix middleware check for URI encoding settings                     

lib/middleware/handle_invalid_percent_encoding.rb

  • Modified the check_enabled? method to ensure that setting_enabled is
    only true if has_settings is true.
  • Simplified the return statement to only check setting_enabled.
  • +2/-2     
    handle_invalid_utf8.rb
    Fix middleware check for UTF-8 settings                                   

    lib/middleware/handle_invalid_utf8.rb

  • Modified the check_enabled? method to ensure that setting_enabled is
    only true if has_settings is true.
  • Simplified the return statement to only check setting_enabled.
  • +2/-2     
    Enhancement
    colonel.rb
    Include AppSettings in Colonel app                                             

    lib/onetime/app/colonel.rb

  • Included AppSettings module in Colonel class.
  • Added a require statement for base.rb.
  • +2/-0     
    web.rb
    Include AppSettings in Web app                                                     

    lib/onetime/app/web.rb

  • Included AppSettings module in Web class.
  • Added a require statement for base.rb.
  • +2/-0     

    💡 PR-Agent usage:
    Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

    A change to how middleware checks for Otto app settings to determine if
    percent encoding and UTF-8 validation should be applied. Previously the
    check returned true if the app had settings defined, but this allowed
    validation to be applied even if the specific setting was disabled. The
    changes now only return true if both the app has settings AND the
    relevant setting is explicitly enabled, avoiding unnecessary validation.
    @delano delano added the bug Issues that report bugs in the project. label Jul 13, 2024
    @delano delano self-assigned this Jul 13, 2024
    @delano delano added the Bug fix label Jul 13, 2024
    @codiumai-pr-agent-pro codiumai-pr-agent-pro bot added Enhancement Review effort [1-5]: 2 Pull requests that require a medium level of review effort. labels Jul 13, 2024
    Copy link
    Contributor

    PR Reviewer Guide 🔍

    ⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
    🧪 No relevant tests
    🔒 No security concerns identified
    ⚡ Key issues to review

    Logic Change
    The logic change in check_enabled? method now correctly checks both if settings exist and if URI encoding is enabled. Ensure this change aligns with all intended use cases and doesn't affect other middleware functionalities.

    Logic Change
    Similar to the URI encoding check, the UTF-8 check logic has been modified to ensure settings are explicitly enabled. Validate that this change does not introduce any regressions or unintended behaviors in UTF-8 handling.

    Copy link
    Contributor

    PR Code Suggestions ✨

    CategorySuggestion                                                                                                                                    Score
    Possible bug
    Check if the method check_uri_encoding exists before calling it

    Ensure that the method check_uri_encoding exists and is accessible on route.klass
    before calling it to avoid potential NoMethodError if the method is not defined.

    lib/middleware/handle_invalid_percent_encoding.rb [83]

    -setting_enabled = has_settings && route.klass.check_uri_encoding
    +setting_enabled = has_settings && route.klass.respond_to?(:check_uri_encoding) && route.klass.check_uri_encoding
     
    • Apply this suggestion
    Suggestion importance[1-10]: 9

    Why: This suggestion prevents a potential NoMethodError by ensuring the method check_uri_encoding exists before calling it, which is a good practice for robust code.

    9
    Check if the method check_utf8 exists before calling it

    Ensure that the method check_utf8 exists and is accessible on route.klass before
    calling it to avoid potential NoMethodError if the method is not defined.

    lib/middleware/handle_invalid_utf8.rb [88]

    -setting_enabled = has_settings && route.klass.check_utf8
    +setting_enabled = has_settings && route.klass.respond_to?(:check_utf8) && route.klass.check_utf8
     
    • Apply this suggestion
    Suggestion importance[1-10]: 9

    Why: This suggestion prevents a potential NoMethodError by ensuring the method check_utf8 exists before calling it, which is a good practice for robust code.

    9
    Possible issue
    Conditionally include AppSettings if it is defined

    Ensure that the AppSettings module is defined and available before including it in
    the Colonel class to prevent NameError.

    lib/onetime/app/colonel.rb [6]

    -include AppSettings
    +include AppSettings if defined?(AppSettings)
     
    • Apply this suggestion
    Suggestion importance[1-10]: 8

    Why: This suggestion prevents a potential NameError by ensuring the AppSettings module is defined before including it, which enhances code stability.

    8

    @delano delano merged commit 4178d4e into develop Jul 13, 2024
    9 checks passed
    @delano delano deleted the 467-undefined-method-check_uri_encoding-error-in-handleinvalidpercentencoding-middleware branch July 13, 2024 23:18
    delano added a commit that referenced this pull request Jul 16, 2024
    commit 073c16d
    Merge: 297379e 9348097
    Author: Delano <1206+delano@users.noreply.github.com>
    Date:   Sun Jul 14 12:05:58 2024 -0700
    
        Merge pull request #475 from onetimesecret/473-make-bundle-install-optional-in-entrypointsh
    
        Make bundle install optional in entrypoint.sh
    
    commit 9348097
    Author: delano <delano@onetimesecret.com>
    Date:   Sun Jul 14 11:58:32 2024 -0700
    
        [#473] Update bundle config for docker
    
        - Set Bundler's `without` config to skip development and test groups,
        avoiding unnecessary packages in the runtime image.
        - Updated the Gemfile.lock and bundled all dependencies to ensure
        consistency across versions.
        - Bumped the application version from 0.13.0 to 0.15.0 to make up for
        lost time.
    
    commit 8d995e1
    Author: delano <delano@onetimesecret.com>
    Date:   Sun Jul 14 11:56:35 2024 -0700
    
        [#473] Make bundle install optional (via BUNDLE_INSTALL)
    
        Also update shebang in entrypoint.sh to use bash instead of sh.
    
    commit 297379e
    Merge: 7957a44 03e88a9
    Author: Delano <1206+delano@users.noreply.github.com>
    Date:   Sun Jul 14 08:36:26 2024 -0700
    
        Merge pull request #472 from onetimesecret/471-improve-middleware-logging-and-configuration-handling
    
        Refactor middleware, logging, and configuration handling
    
    commit 03e88a9
    Author: delano <delano@onetimesecret.com>
    Date:   Sun Jul 14 08:31:42 2024 -0700
    
        [#471] Remove legacy cli command (register_build)
    
    commit 2aaaf13
    Author: delano <delano@onetimesecret.com>
    Date:   Sun Jul 14 08:31:13 2024 -0700
    
        [#471] Delay even requiring sentry until enabled (in dev)
    
    commit 1a201a0
    Author: delano <delano@onetimesecret.com>
    Date:   Sun Jul 14 08:27:46 2024 -0700
    
        [#471] Formatting
    
        And remove auto-loading debugger in dev + debug mode.
    
    commit 0f64cd1
    Author: delano <delano@onetimesecret.com>
    Date:   Sun Jul 14 07:26:44 2024 -0700
    
        [#471] Rename BUILD.yml to VERSION.yml for clarity
    
    commit bc74241
    Author: delano <delano@onetimesecret.com>
    Date:   Sun Jul 14 07:21:05 2024 -0700
    
        [#471] Improve initialization performance and clarity
    
        The initialization routine was restructured for improved performance and
        readability. Key changes:
    
        - Load configuration earlier for dependencies
        - Extract initializer steps into private methods named for their purpose
        - Prepare emailer, secrets, rate limiting and fortunes loading before
        other steps
        - Reduce duplication around locale loading
        - Print locales loaded in banner for easier debugging
    
    commit 42f5cbf
    Author: delano <delano@onetimesecret.com>
    Date:   Sun Jul 14 07:07:50 2024 -0700
    
        [#471] Simplify bootup sequence
    
        Refactor the Onetime.boot! to improve readability by extracting logic
        into private methods with descriptive names. Separate configuration,
        initialization, and connection tasks.
    
    commit 1eea4b1
    Author: delano <delano@onetimesecret.com>
    Date:   Sun Jul 14 07:06:35 2024 -0700
    
        [#471] Simplify middleware logistics at start-time
    
    commit 9fa4d0c
    Author: delano <delano@onetimesecret.com>
    Date:   Sun Jul 14 07:05:53 2024 -0700
    
        [#471] Set default log level for middlewares
    
    commit 7957a44
    Merge: 4178d4e 7ba1033
    Author: Delano <1206+delano@users.noreply.github.com>
    Date:   Sat Jul 13 16:48:19 2024 -0700
    
        Merge pull request #470 from onetimesecret/469-unexpected-404-errors-for-api-and-colonel-endpoints
    
        Standardize app attachment and rack 'em up (with route tests)
    
    commit 7ba1033
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 16:44:45 2024 -0700
    
        [#469] Add basic tryouts for web, API and colonel routes
    
        Added a new test file at try/90_routes_smoketest.rb to verify the basic
        functionality of key routes for the web application, API and colonel
        interfaces. The test uses Rack::MockRequest to simulate HTTP requests
        and check for expected status codes and response formats without
        exercising full functionality. This helps catch any major breakage in
        the core routing of these interfaces before more extensive tests are
        added.
    
    commit 828197f
    Merge: 83141a9 4178d4e
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 16:20:43 2024 -0700
    
        [#469] Merge branch 'develop' into 469-unexpected-404-errors-for-api-and-colonel-endpoints
    
    commit 4178d4e
    Merge: b00226a 50d570c
    Author: Delano <1206+delano@users.noreply.github.com>
    Date:   Sat Jul 13 16:18:40 2024 -0700
    
        Merge pull request #468 from onetimesecret/467-undefined-method-check_uri_encoding-error-in-handleinvalidpercentencoding-middleware
    
        Fix middleware app setting checks
    
    commit 83141a9
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 16:08:23 2024 -0700
    
        [#469] Disable logging tryouts (temporary
    
    commit 831570c
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 15:49:51 2024 -0700
    
        [#469] Standardize app attachment in rack 'em up
    
        Move common middleware attachment logic to inside map block for
        consistency across environments. This consolidates duplicate code and
        ensures apps are always attached with the same base set of middleware in
        both dev and prod.
    
    commit 50d570c
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 15:35:26 2024 -0700
    
        [#467] Include new AppSettings in web, colonel apps
    
    commit 98a8e44
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 15:14:44 2024 -0700
    
        [#467] Fix middleware app setting checks
    
        A change to how middleware checks for Otto app settings to determine if
        percent encoding and UTF-8 validation should be applied. Previously the
        check returned true if the app had settings defined, but this allowed
        validation to be applied even if the specific setting was disabled. The
        changes now only return true if both the app has settings AND the
        relevant setting is explicitly enabled, avoiding unnecessary validation.
    
    commit b00226a
    Merge: 8592e94 1603016
    Author: Delano <1206+delano@users.noreply.github.com>
    Date:   Sat Jul 13 14:13:55 2024 -0700
    
        Merge pull request #466 from onetimesecret/delano/20240705-logging
    
    commit 1603016
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 11:28:46 2024 -0700
    
        [#20240705] Add common logger to production apps
    
    commit dced9d1
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 11:26:33 2024 -0700
    
        [#20240705] Fix for tryout checking updated log content
    
    commit 7b67bc7
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 11:26:04 2024 -0700
    
        [#20240705] Rewind rack input stream in handle_invalid_percent_encoding middleware
    
    commit 692e6da
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 11:15:06 2024 -0700
    
        [#20240705] Update logging to include REQUEST_URI
    
    commit 940470b
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 11:12:13 2024 -0700
    
        [#20240705] Simplify middleware setup in config.ru
    
        • Move HeaderLoggerMiddleware to Rack namespace
        • Update logging to use OT.info
        • Remove redundant middleware in dev setup
    
    commit 65305f4
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 11:07:57 2024 -0700
    
        [#20240705] Improve header logging middleware for debugging
    
        The HeaderLoggerMiddleware was renamed to Rack::HeaderLoggerMiddleware
        and modified to log at debug level instead of info.
    
    commit 18a7837
    Merge: dcbc98c 8592e94
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 11:02:53 2024 -0700
    
        [#20240705] Merge branch 'develop' into delano/20240705-logging
    
    commit 8592e94
    Merge: 1028fa8 4c9485b
    Author: Delano <1206+delano@users.noreply.github.com>
    Date:   Sat Jul 13 10:47:26 2024 -0700
    
        Merge pull request #465 from onetimesecret/463-utf-8-encoding-error
    
        Fix invalid URI Encoding in API request handling
    
    commit 4c9485b
    Author: Delano <1206+delano@users.noreply.github.com>
    Date:   Sat Jul 13 10:38:50 2024 -0700
    
        Update lib/onetime/app/api/base.rb
    
        Co-authored-by: codiumai-pr-agent-pro[bot] <151058649+codiumai-pr-agent-pro[bot]@users.noreply.github.com>
        Signed-off-by: Delano <1206+delano@users.noreply.github.com>
    
    commit 118046d
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 10:34:58 2024 -0700
    
        [#463] Remove errant pry-byebug requires
    
    commit 610c039
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 10:27:32 2024 -0700
    
        [#463] Remove rack-utf8_sanitizer gem
    
        • Remove rack-utf8_sanitizer from Gemfile
        • Update Gemfile.lock
    
    commit c74e25c
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 10:21:49 2024 -0700
    
        [#463] Grab some snacks and enjoy the docs!
    
    commit c8fe5df
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 10:20:46 2024 -0700
    
        [#463] Add tryouts for AppSettings
    
    commit 8c094d8
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 10:09:35 2024 -0700
    
        [#463] Fix for uri encoding tryout (after name change)
    
    commit 77d8813
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 10:09:08 2024 -0700
    
        [#463] Fix for utf8 encoding tryout
    
        Need to explicitly enable the check in unit tests. There's no app or
        route to hang logic off of.
    
    commit 2a7e446
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 10:05:56 2024 -0700
    
        [#463] Run utf8 check before uri encoding
    
    commit 302985f
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 10:04:52 2024 -0700
    
        [#463] Add AppSettings module for middleware flags
    
        We only want to check uri and utf encodings for API routes, not for web
        routes. This change adds a new AppSettings module to define the
        middleware flags for each route. The flags are then used to determine
        whether to check for valid encodings.
    
        The middleware for handling invalid percent encoding and UTF-8
        validation has been refactored to:
    
        - Add specific check for Onetime app routes to determine configuration
        - Improve naming (URI encoding rather than percent encoding)
        - Check request parameters for valid encodings only when configured at
        the app/route level
        - Move shared AppSettings module to a common location
        - Improve logging with more contextual messages
    
        These changes:
    
        - Use more precise terminology for encoding validation
        - Avoid unnecessary checks when not configured
        - Centralize reusable settings definition
        - Enhance debuggability with improved logging
    
        Tests have been updated to demonstrate the more nuanced behavior.
    
    commit 125c4ba
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 08:26:25 2024 -0700
    
        [#463] Tidy
    
    commit 958be41
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 08:04:17 2024 -0700
    
        [#463] Validate UTF-8 encoding in request parameters too
    
        The middleware has been updated check request parameters, headers, and
        body content for invalid UTF-8 sequences. Each potential source is now
        validated and an error is raised early if invalid encoding is detected.
        This avoids silently handling requests with bad data and ensures only
        valid encoded content is passed to the application.
    
        - The middleware no longer extends `Rack::UTF8Sanitizer` and instead
        implements custom validation logic
        - An array of all relevant request sources is defined to iterate over
        for validation
        - A new method checks each value and raises an error if invalid UTF-8 is
        found
        - On failure, a descriptive error message identifies the failed
        parameter
        - This change hopefully avoids potential encoding issues down the
        application stack. And unnecessary processing of invalid data user
        headaches.
    
    commit 4676c3c
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 07:08:08 2024 -0700
    
        [#463] Add UTF-8 sanitization middleware to handle invalid encodings
    
    commit d7d4b86
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 07:07:27 2024 -0700
    
        [#463] Handle invalid UTF-8 in requests
    
        Adds Rack middleware to sanitize requests, logging and returning 400
        errors for invalid UTF-8 in headers or bodies. Tests cover a variety of
        encoding issues and ensure valid requests pass through unchanged. Now
        requests with malformed encoding will be rejected consistently according
        to standards while properly encoded content continues to be served.
    
    commit 9c2efb4
    Author: delano <delano@onetimesecret.com>
    Date:   Sat Jul 13 06:26:03 2024 -0700
    
        [#463] Cleanup middleware implementation
    
        Separated the exception handling into a separate method for better
        readability.
    
    commit 1028fa8
    Merge: d2aa9c6 2ecb142
    Author: Delano <1206+delano@users.noreply.github.com>
    Date:   Fri Jul 12 15:49:06 2024 -0700
    
        Merge pull request #464 from onetimesecret/463-fix-invalid-encoding-in-post-request-handling
    
        Fix invalid %-encoding in POST request handling
    
    commit 2ecb142
    Author: delano <delano@onetimesecret.com>
    Date:   Fri Jul 12 15:09:01 2024 -0700
    
        [#463] Fix invalid percent encoding
    
        i.e. "invalid %-encoding" error.
    
        Integrated a middleware to handle invalid percent encodings by
        normalizing characters. This avoids potential errors from corrupted
        query parameters and ensures consistency across different parsers. Added
        to development environment for debugging and added a logging middleware
        for additional visibility.
    
    commit b4459cb
    Author: delano <delano@onetimesecret.com>
    Date:   Fri Jul 12 15:05:03 2024 -0700
    
        [#463] Add middleware to handle percent-encoding error
    
        Includes tryouts.
    
        ---
    
        The `Rack::HandleInvalidPercentEncoding` middleware addresses a complex issue in web applications: handling malformed percent-encoded data in HTTP requests. Percent-encoding is used to represent special characters in URLs and form data, but when it's implemented incorrectly by clients, it can lead to parsing errors and potential security vulnerabilities.
    
        This middleware tackles several challenges:
    
        1. Detecting invalid percent-encoding early in the request processing pipeline.
        2. Preventing these errors from causing application crashes or unpredictable behavior.
        3. Providing meaningful feedback to API consumers or end-users.
        4. Logging the issue for monitoring and debugging purposes.
    
        Rather than attempting to guess the correct encoding or silently fixing the input, which could lead to data integrity issues or mask potential attacks, this middleware takes a straightforward and secure approach:
    
        1. It intercepts the request before it reaches the main application.
        2. It attempts to parse the request parameters, which will trigger an error if invalid percent-encoding is present.
        3. If an error is detected, it immediately returns a 400 Bad Request response with a clear error message.
        4. It logs the error for server-side visibility.
    
        ---
    
        Prior art:
    
        Invalid % Encoding #2159
        ruby-grape/grape#2159
    
        invalid %-encoding error in application for malformed uri #337
        rack/rack#337
    
        invalid %-encoding Rack backtrace
        https://gist.github.com/matiaskorhonen/4f67425a065fd12b43b8
    
        Invalid or incomplete POST parameters
        https://thomasleecopeland.com/2018/08/12/invalid-or-incomplete-post-parameters.html
    
        Rails/Rack: "ArgumentError: invalid %-encoding" for POST data
        https://stackoverflow.com/questions/15769681/rails-rack-argumenterror-invalid-encoding-for-post-data/24615414#24615414
    
        invalid %-encoding error in application for malformed uri
        https://gist.github.com/bf4/d26259acfa29f3b9882b#file-exception_app-rb
    
    commit 52146f4
    Author: delano <delano@onetimesecret.com>
    Date:   Fri Jul 12 14:31:14 2024 -0700
    
        [#463] Undo Rubocop autostyling for new tryouts
    
    commit 1047cfd
    Author: delano <delano@onetimesecret.com>
    Date:   Fri Jul 12 14:30:26 2024 -0700
    
        [#463] Exclude migrations, tryouts from RuboCop analysis
    
    commit 129d964
    Author: delano <delano@onetimesecret.com>
    Date:   Fri Jul 12 14:29:09 2024 -0700
    
        [#463] Add tryouts to replicate behaviour
    
        e.g. Raising `invalid %-encoding` errors in request.params.
    
        Signed-off-by: delano <delano@onetimesecret.com>
    
    commit c85720c
    Author: delano <delano@onetimesecret.com>
    Date:   Fri Jul 12 06:52:20 2024 -0700
    
        [#463] Add powershell example
    
    commit dcbc98c
    Author: delano <delano@onetimesecret.com>
    Date:   Thu Jul 11 15:27:10 2024 -0700
    
        [#20240705] Improve logging middleware for debugging
    
        Moved the HeaderLoggerMiddleware code into its own file to clean up
        config.ru. Also added documentation comments to the middleware class to
        explain its purpose and recommended usage.
    
        The HeaderLoggerMiddleware is intended for development environments to
        log HTTP request headers, which can help debug proxy and load balancer
        configs. It was previously defined inline in config.ru, making that file
        more cluttered. Extracting it to its own file in the lib/middleware
        folder results in cleaner code organization without impacting
        functionality.
    
    commit 5fa285e
    Author: delano <delano@onetimesecret.com>
    Date:   Thu Jul 11 15:01:28 2024 -0700
    
        [#20240705] Add prompts folder to ignored files
    
        The .gitignore file was updated to include ignoring new folders containing dialogue prompts and configuration for the Caddy web server. This prevents unrelated files from being tracked in source control and keeps the repository focused on code.
    
    commit c3b1e71
    Author: delano <delano@onetimesecret.com>
    Date:   Thu Jul 11 14:53:19 2024 -0700
    
        [#20240705] Improve debugging with logging headers
    
        Add middleware to log request headers to syslog for all requests. This
        provides valuable context when debugging issues, helping to understand
        origin of requests and behaviour of upstream services. The middleware is
        added to both development and production configurations so header data
        is consistently captured.
    
        Header logging provides:
    
        - Origin information like client IP, forwarded headers
        - Request metadata like HTTP method and URL
        - Insight into headers from upstream services
    
        This focuses logging on important requests attributes without cluttering
        logs with request body content. With just the header info, issues can
        often be resolved more quickly.
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    bug Issues that report bugs in the project. Review effort [1-5]: 2 Pull requests that require a medium level of review effort.
    Projects
    Development

    Successfully merging this pull request may close these issues.

    Undefined method 'check_uri_encoding' error in HandleInvalidPercentEncoding middleware
    1 participant