Package com.io7m.idstore.server.controller.user

# Class IdUserLoginService

java.lang.Object
com.io7m.idstore.server.controller.user.IdUserLoginService

All Implemented Interfaces:
  `com.io7m.repetoir.core.RPServiceType`

public final class IdUserLoginService extends Object implements com.io7m.repetoir.core.RPServiceType
A service that handles the logic for user logins.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `IdUserLoginService(IdServerClock inClock, IdStrings inStrings, IdSessionUserService inSessions, IdServerConfigurationService inConfigurations, IdRateLimitUserLoginServiceType inRateLimit, IdEventServiceType inEvents)`
  A service that handles the logic for user logins.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `description()`
  `String`
  `toString()`
  `IdUserLoggedIn`
  `userLogin(IdDatabaseTransactionType transaction, UUID requestId, String remoteHost, String username, String password, Map<String,String> metadata)`
  Try logging in.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### IdUserLoginService

    public IdUserLoginService(IdServerClock inClock, IdStrings inStrings, IdSessionUserService inSessions, IdServerConfigurationService inConfigurations, IdRateLimitUserLoginServiceType inRateLimit, IdEventServiceType inEvents)
    A service that handles the logic for user logins.
    Parameters:
      `inClock` - The clock
      `inStrings` - The string resources
      `inSessions` - A session service
      `inConfigurations` - A configuration service
      `inRateLimit` - The rate limit
      `inEvents` - The event service

- ## Method Details

  - ### userLogin

    public IdUserLoggedIn userLogin(IdDatabaseTransactionType transaction, UUID requestId, String remoteHost, String username, String password, Map<String,String> metadata) throws IdCommandExecutionFailure
    Try logging in. Create a new session if logging in succeeds, or raise an exception if the login cannot proceed for any reason (invalid credentials, banned user, etc).
    Parameters:
      `transaction` - A database transaction
      `requestId` - The ID of the request
      `remoteHost` - The remote remoteHost
      `username` - The username
      `password` - The password
      `metadata` - The request metadata
    Returns:
      A login record
    Throws:
      `IdCommandExecutionFailure` - On errors

  - ### description

    public String description()
    Specified by:
      `description` in interface `com.io7m.repetoir.core.RPServiceType`

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`