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

249 - Fix invalid access token error #261

Merged
merged 16 commits into from
Jan 23, 2024

Conversation

Janell-Huyck
Copy link
Contributor

@Janell-Huyck Janell-Huyck commented Oct 19, 2023

Fixes #249

This PR creates another controller "concern", ExceptionHandlingManager, to take care of the InvalidAuthenticityToken error and to collect other custom error handling created in the future.

It is called inside the application_controller and does the following:

  • logs a warn-level message
  • resets the session (logs out old users)
  • redirects the user to the root_page or manage_page as appropriate, with a flash warning message

Tests:

  • Unit tests: spec/controllers/concerns/exception_handling_manager_spec.rb

  • Feature tests: I created a series of tests to address how the application should or should not be able to be accessed in combinations of the following issues:

    • The app is out of date
    • The user has an invalid authenticity token
    • The user isn't logged in

    This series of tests is why I marked this PR as "large". They are in the folder: spec/features/application_access/

Additional changes

  • Resets the session upon successfully logging in as an admin (to prevent session fixation attacks). This incidentally fixes the bug that allowed a user to log in as both an admin and a submitter at the same time.
  • Skips user validation for "closed" and "finished" pages to avoid an infinite looping bug encountered while testing
  • Clarifies a few lines in submitters_controller_spec

@Janell-Huyck Janell-Huyck changed the title WIP 249 invalid access token fix 249 invalid access token fix Oct 19, 2023
@Janell-Huyck Janell-Huyck changed the title 249 invalid access token fix WIP 249 invalid access token fix Nov 14, 2023
@Janell-Huyck Janell-Huyck force-pushed the 249-handle-invalid-authenticity-token-errors branch from bfde778 to 92d7a4a Compare November 16, 2023 18:45
@Janell-Huyck Janell-Huyck changed the title WIP 249 invalid access token fix 249 - Fix invalid access token error Nov 16, 2023
@Janell-Huyck Janell-Huyck added this to the Next deploy milestone Nov 22, 2023
@Janell-Huyck Janell-Huyck force-pushed the 249-handle-invalid-authenticity-token-errors branch from 26e118f to 0fc0888 Compare December 1, 2023 16:01
@Janell-Huyck Janell-Huyck changed the title 249 - Fix invalid access token error WIP *** 249 - Fix invalid access token error Dec 1, 2023
@Janell-Huyck Janell-Huyck force-pushed the 249-handle-invalid-authenticity-token-errors branch from 9fd404e to 8597cce Compare December 6, 2023 22:42
@Janell-Huyck Janell-Huyck changed the title WIP *** 249 - Fix invalid access token error 249 - Fix invalid access token error Dec 6, 2023
@crowesn crowesn self-assigned this Jan 17, 2024
@@ -77,6 +77,8 @@

def create_submitter(submitter)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not directly related to this PR, but wondering if this function might find a better home in /spec/support.

Copy link
Contributor

@crowesn crowesn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a dense PR, good work, merging.

@crowesn crowesn merged commit 04f93c8 into qa Jan 23, 2024
2 checks passed
@crowesn crowesn deleted the 249-handle-invalid-authenticity-token-errors branch January 23, 2024 20:33
@hortongn hortongn removed this from the Next deploy milestone Apr 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ActionController::InvalidAuthenticityToken in SubmittersController#create
3 participants