Package com.axelor.auth
Class AuthPasswordResetServiceImpl
java.lang.Object
com.axelor.auth.AuthPasswordResetServiceImpl
- All Implemented Interfaces:
AuthPasswordResetService
Service for password reset.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final booleanprotected static final org.slf4j.Loggerprotected final Provider<MailService> protected static final AppSettingsprotected final Provider<PasswordResetTokenRepository> protected final Provider<UserRepository> -
Constructor Summary
ConstructorsConstructorDescriptionAuthPasswordResetServiceImpl(Provider<MailService> mailService, Provider<UserRepository> userRepository, Provider<PasswordResetTokenRepository> tokenRepository) -
Method Summary
Modifier and TypeMethodDescriptionvoidchangePassword(String token, String password) Changes the user password and marks the token as consumed.voidcheckToken(String token) Checks whether the token is valid.protected booleanprotected voidconsumeTokens(User user) Consumes existing password reset tokens for the given user.protected StringcreateResetUrl(User user) Creates a password reset URL.protected StringcreateToken(User user) Creates a password reset token.protected StringGets the base URL of the application.protected StringgetEmailBody(User user, String resetUrl) Gets the body of the password reset email.protected StringgetEmailSubject(User user) Gets the subject of the password reset email.protected jakarta.servlet.http.HttpServletRequestprotected static intGets the maximum age of a password reset token in hours.protected StringgetMessage(String key) protected PasswordResetTokengetValidToken(String token) Gets a password reset token record if it is valid.protected StringbooleanChecks whether password reset service is enabled.protected voidSends a password reset email to the given user.voidsubmitForgotPassword(String emailAddress) Submits forgot password.
-
Field Details
-
mailService
-
userRepository
-
tokenRepository
-
enabled
protected final boolean enabled -
settings
-
logger
protected static final org.slf4j.Logger logger
-
-
Constructor Details
-
AuthPasswordResetServiceImpl
@Inject public AuthPasswordResetServiceImpl(Provider<MailService> mailService, Provider<UserRepository> userRepository, Provider<PasswordResetTokenRepository> tokenRepository)
-
-
Method Details
-
isEnabled
public boolean isEnabled()Description copied from interface:AuthPasswordResetServiceChecks whether password reset service is enabled.- Specified by:
isEnabledin interfaceAuthPasswordResetService- Returns:
- true if enabled
-
computeEnabled
protected boolean computeEnabled() -
submitForgotPassword
Description copied from interface:AuthPasswordResetServiceSubmits forgot password.Consumes existing password reset tokens for user and sends a password reset email.
- Specified by:
submitForgotPasswordin interfaceAuthPasswordResetService- Parameters:
emailAddress- the email address of the user- Throws:
MailException- on email sending failure
-
checkToken
Description copied from interface:AuthPasswordResetServiceChecks whether the token is valid.- Specified by:
checkTokenin interfaceAuthPasswordResetService- Parameters:
token- the password reset token
-
changePassword
Description copied from interface:AuthPasswordResetServiceChanges the user password and marks the token as consumed.- Specified by:
changePasswordin interfaceAuthPasswordResetService- Parameters:
token- the password reset tokenpassword- the new password
-
consumeTokens
Consumes existing password reset tokens for the given user.- Parameters:
user- the user whose password needs to be reset
-
sendEmail
Sends a password reset email to the given user.- Parameters:
user- the user whose password needs to be reset- Throws:
MailException
-
getEmailSubject
Gets the subject of the password reset email.- Parameters:
user- the user whose password needs to be reset- Returns:
- the subject of the email
-
getEmailBody
Gets the body of the password reset email.- Parameters:
user- the user whose password needs to be resetresetUrl- the password reset URL- Returns:
- the body of the email
-
getMessage
-
createResetUrl
Creates a password reset URL.- Parameters:
user- the user whose password needs to be reset- Returns:
- the password reset URL
-
createToken
Creates a password reset token.- Parameters:
user- the user whose password needs to be reset- Returns:
- the password reset token
- Throws:
IllegalStateException- if the user is not active
-
getValidToken
Gets a password reset token record if it is valid.Checks whether it exists, not archived, not consumed, not expired, and user is active.
- Parameters:
token- the password reset token- Returns:
- the password reset token record
- Throws:
IllegalArgumentException- if the token is invalid
-
getMaxAgeHours
protected static int getMaxAgeHours()Gets the maximum age of a password reset token in hours.- Returns:
- the maximum age in hours
-
getBaseUrl
Gets the base URL of the application.We cannot trust request host header because of host header injection attacks. We use either `application.base-url` or current tenant `hosts` configuration.
- Returns:
- the base URL
-
getHttpRequest
protected jakarta.servlet.http.HttpServletRequest getHttpRequest() -
hash
-