diff options
| author | James Elliott <james-d-elliott@users.noreply.github.com> | 2020-04-04 10:11:33 +1100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-04-04 10:11:33 +1100 |
| commit | 626f5d29492cf7ece02fae393c50d924df32f280 (patch) | |
| tree | 63ae3b582aa24e6a01bf9cf33313475c6818fafd /internal/utils/const.go | |
| parent | 4fcaff7c4b79e946c4662d6794bfb1e8ac9a4097 (diff) | |
[FEATURE] Remember Me Configuration (#813)
* [FEATURE] Remember Me Configuration
* allow users to specify the duration of remember me using remember_me_duration in session config
* setting the duration to 0 disables remember me
* only render the remember me element if remember me is enabled
* prevent malicious users from faking remember me functionality in the backend
* add string to duration helper called ParseDurationString to parse a string into a duration
* added tests to the helper function
* use the SessionProvider to store the time.Duration instead of parsing it over and over again
* add sec doc, adjust month/min, consistency
* renamed internal/utils/constants.go to internal/utils/const.go to be consistent
* added security measure docs
* adjusted default remember me duration to be 1 month instead of 1 year
* utilize default remember me duration in the autheliaCtx mock
* adjust order of keys in session configuration examples
* add notes on session security measures secret only being redis
* add TODO items for duration notation for both Expiration and Inactivity (will be removed soon)
* fix error text for Inactivity in the validator
* add session validator tests
* deref check bodyJSON.KeepMeLoggedIn and derive the value based on conf and user input and store it (DRY)
* remove unnecessary regex for the simplified ParseDurationString utility
* ParseDurationString only accepts decimals without leading zeros now
* comprehensively test all unit types
* remove unnecessary type unions in web
* add test to check sanity of time duration consts, this is just so they can't be accidentally changed
* simplify deref check and assignment
* fix reset password padding/margins
* adjust some doc wording
* adjust the handler configuration suite test
* actually run the handler configuration suite test (whoops)
* reduce the number of regex's used by ParseDurationString to 1, thanks to Clement
* adjust some error wording
Diffstat (limited to 'internal/utils/const.go')
| -rw-r--r-- | internal/utils/const.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/internal/utils/const.go b/internal/utils/const.go new file mode 100644 index 000000000..05ffb344c --- /dev/null +++ b/internal/utils/const.go @@ -0,0 +1,17 @@ +package utils + +import ( + "errors" + "regexp" + "time" +) + +// ErrTimeoutReached error thrown when a timeout is reached +var ErrTimeoutReached = errors.New("timeout reached") +var parseDurationRegexp = regexp.MustCompile(`^(?P<Duration>[1-9]\d*?)(?P<Unit>[smhdwMy])?$`) + +const Hour = time.Minute * 60 +const Day = Hour * 24 +const Week = Day * 7 +const Year = Day * 365 +const Month = Year / 12 |
