You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
OneTimeTokenAuthenticationProvider does not validate UserDetails account status checks (isEnabled, isAccountNonExpired, isAccountNonLocked). Users can authenticate with one-time tokens even when their accounts are disabled, expired, or locked. Currently, these checks must be handled manually in OneTimeTokenGenerationSuccessHandler, but we expect the AuthenticationProvider to handle these checks automatically like DaoAuthenticationProvider does.
To Reproduce
Create a UserDetails implementation that returns false for isEnabled(), isAccountNonExpired(), or isAccountNonLocked()
Attempt to authenticate using a valid one-time token for this user
Authentication succeeds despite the account status
Account status validation must be implemented separately in OneTimeTokenGenerationSuccessHandler
Expected behavior
Authentication should fail when UserDetails returns false for any of the following methods: