Add default TokenIdentifier for PrimaryKeySessionAuthenticator #764
+133
−8
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
PrimaryKeySessionAuthenticatornow provides a defaultTokenIdentifierthat works out of the box, eliminating the need for explicit configuration in most cases.The Problem
Currently, using
PrimaryKeySessionAuthenticatorrequires understanding the internal field mapping between the authenticator and identifier:The field names don't align intuitively:
identifierKey(authenticator) ↔dataField(identifier)idField(authenticator) ↔tokenField(identifier)The Solution (Option 1 - Implemented)
Override
getIdentifier()to lazily create a defaultTokenIdentifierwith matching configuration:Custom configuration is still fully supported when needed.
Alternative Approaches Considered
Option 2: Align the naming
Rename the config keys to use consistent terminology across authenticator and identifier. This would improve discoverability but still require explicit configuration.
Option 3: Change defaults on PrimaryKeySession side
Change
identifierKeydefault from'key'to'id', reducing the configuration needed. However, this still requires understanding which fields to configure.Why Option 1?
id)SessionAuthenticator(which provides a defaultPasswordIdentifier)idFieldandidentifierKeyconfig options automatically propagate to the default identifierTest Plan
testAuthenticateSuccessWithDefaultIdentifier- verifies authentication works without explicit identifiertestGetIdentifierReturnsDefaultWhenNotConfigured- verifies default TokenIdentifier is createdtestGetIdentifierUsesCustomConfig- verifies customidField/identifierKeypropagates correctly