Interface LoginManager
- All Known Implementing Classes:
BootstrapLoginManagerImpl,LoginManagerImpl
public interface LoginManager
The LoginManager keeps track of users login activities.
- Since:
- v4.0
-
Method Summary
Modifier and TypeMethodDescriptionauthenticate(ApplicationUser user, String password) This can be called to see if an user knows the given password.authenticateWithoutElevatedCheck(ApplicationUser user, String password) This can be called to see if an user knows the given password.booleanauthoriseForLogin(ApplicationUser user, jakarta.servlet.http.HttpServletRequest httpServletRequest) This is called to see if an authenticated user is allowed to login JIRA in the context of a web request.booleanauthoriseForRole(ApplicationUser user, jakarta.servlet.http.HttpServletRequest httpServletRequest, String role) This is called to see if an authenticated user is allowed to execute the web request given the required rolegetLoginInfo(String userName) This is called to get LoginInfo about a given user.getRequiredRoles(jakarta.servlet.http.HttpServletRequest httpServletRequest) Gets the set of role strings that are examined by Seraph to decide if a user is authorised to execute a request.booleanvoidlogout(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.servlet.http.HttpServletResponse httpServletResponse) This is called to logout the current user and destroy their JIRA session.onLoginAttempt(jakarta.servlet.http.HttpServletRequest httpServletRequest, String userName, boolean loginSuccessful) This is called after a login attempt has been made.booleanperformElevatedSecurityCheck(jakarta.servlet.http.HttpServletRequest httpServletRequest, String userName) This is called to see whether the user has passed an extended security check (such as CAPTCHA)voidThis can be called to reset the failed login count of a userThis is called to update the last login time without clearing the elevated security check.
-
Method Details
-
getLoginInfo
This is called to get LoginInfo about a given user.- Parameters:
userName- the name of the user in play. This MUST not be null.- Returns:
- a
LoginInfoobject
-
performElevatedSecurityCheck
boolean performElevatedSecurityCheck(jakarta.servlet.http.HttpServletRequest httpServletRequest, String userName) This is called to see whether the user has passed an extended security check (such as CAPTCHA)- Parameters:
httpServletRequest- the HTTP request in playuserName- the name of the user in play. This MUST not be null.- Returns:
- true if they have passed the extended security check
-
onLoginAttempt
LoginInfo onLoginAttempt(jakarta.servlet.http.HttpServletRequest httpServletRequest, String userName, boolean loginSuccessful) This is called after a login attempt has been made. It allows the LoginManager to update information about a users login history and clear the elevated security check.- Parameters:
httpServletRequest- the HTTP request in playuserName- the name of the user in play. This MUST not be null.loginSuccessful- whether the login attempt was sucessful or not- Returns:
- the updated
LoginInfoabout the user
-
updateLastLoginTime
This is called to update the last login time without clearing the elevated security check.- Parameters:
user- the user in play. This MUST not be null.- Returns:
- the updated
LoginInfoabout the user
-
authenticate
This can be called to see if an user knows the given password.If the user requests elevatedSecurity then this will always fail with LoginReason.AUTHENTICATION_DENIED
- Parameters:
user- the user to authenticate. This MUST not be null.password- the password to authenticate against- Returns:
- true if the user can be authenticated
-
authenticateWithoutElevatedCheck
This can be called to see if an user knows the given password.Calling this method will not cause the request to fail if the user is required to do an elevated security check on normal login.
- Parameters:
user- the user to authenticate. This MUST not be null.password- the password to authenticate against- Returns:
- true if the user can be authenticated
-
authoriseForLogin
boolean authoriseForLogin(@Nonnull ApplicationUser user, jakarta.servlet.http.HttpServletRequest httpServletRequest) This is called to see if an authenticated user is allowed to login JIRA in the context of a web request.At this stage the user has had their username and password authenticated but we need to see if they can be authorised to use JIRA.
- Parameters:
user- the user to authorise. This MUST not be null.httpServletRequest- the web request in play- Returns:
- true if the user can be authorised for login
-
getRequiredRoles
Gets the set of role strings that are examined by Seraph to decide if a user is authorised to execute a request.- Parameters:
httpServletRequest- the request in play- Returns:
- a set of roles
-
authoriseForRole
boolean authoriseForRole(@Nullable ApplicationUser user, jakarta.servlet.http.HttpServletRequest httpServletRequest, String role) This is called to see if an authenticated user is allowed to execute the web request given the required role- Parameters:
user- the user to authorise. This MAY be null.httpServletRequest- the web request in play- Returns:
- true if the user can be authorised for this request
-
logout
void logout(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.servlet.http.HttpServletResponse httpServletResponse) This is called to logout the current user and destroy their JIRA session.- Parameters:
httpServletRequest- the HTTP request in playhttpServletResponse- the HTTP response in play
-
isElevatedSecurityCheckAlwaysShown
boolean isElevatedSecurityCheckAlwaysShown()- Returns:
- true if the elevated security check (such as CAPTCHA) is always shown
-
resetFailedLoginCount
This can be called to reset the failed login count of a user- Parameters:
user- the user to authorise. This MUST not be null.
-