SessionAuthenticatorService

play.silhouette.impl.authenticators.SessionAuthenticatorService
See theSessionAuthenticatorService companion object
class SessionAuthenticatorService(settings: SessionAuthenticatorSettings, fingerprintGenerator: FingerprintGenerator, authenticatorEncoder: AuthenticatorEncoder, sessionCookieBaker: SessionCookieBaker, clock: Clock)(implicit val executionContext: ExecutionContext) extends AuthenticatorService[SessionAuthenticator], Logger

The service that handles the session authenticator.

Value parameters

authenticatorEncoder

The authenticator encoder.

clock

The clock implementation.

executionContext

The execution context to handle the asynchronous operations.

fingerprintGenerator

The fingerprint generator implementation.

sessionCookieBaker

The session cookie baker.

settings

The authenticator settings.

Attributes

Companion
object
Graph
Supertypes
trait Logger
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

override def create(loginInfo: LoginInfo)(implicit request: RequestHeader): Future[SessionAuthenticator]

Creates a new authenticator for the specified login info.

Creates a new authenticator for the specified login info.

Value parameters

loginInfo

The login info for which the authenticator should be created.

request

The request header.

Attributes

Returns

An authenticator.

Definition Classes
override def discard(authenticator: SessionAuthenticator, result: Result)(implicit request: RequestHeader): Future[AuthenticatorResult]

Removes the authenticator from session.

Removes the authenticator from session.

Value parameters

request

The request header.

result

The result to manipulate.

Attributes

Returns

The manipulated result.

Definition Classes
override def embed(session: Session, result: Result)(implicit request: RequestHeader): Future[AuthenticatorResult]

Embeds the user session into the result.

Embeds the user session into the result.

Value parameters

result

The result to manipulate.

session

The session to embed.

Attributes

Returns

The manipulated result.

Definition Classes
override def embed(session: Session, request: RequestHeader): RequestHeader

Overrides the user session in request.

Overrides the user session in request.

Value parameters

request

The request header.

session

The session to embed.

Attributes

Returns

The manipulated request header.

Definition Classes
override def init(authenticator: SessionAuthenticator)(implicit request: RequestHeader): Future[Session]

Returns a new user session containing the authenticator.

Returns a new user session containing the authenticator.

Value parameters

authenticator

The authenticator instance.

request

The request header.

Attributes

Returns

The serialized authenticator value.

Definition Classes
override def renew(authenticator: SessionAuthenticator)(implicit request: RequestHeader): Future[Session]

Renews an authenticator.

Renews an authenticator.

The old authenticator needn't be revoked because we use a stateless approach here. So only one authenticator can be bound to a user session. This method doesn't embed the the authenticator into the result. This must be done manually if needed or use the other renew method otherwise.

Value parameters

authenticator

The authenticator to renew.

request

The request header.

Attributes

Returns

The serialized expression of the authenticator.

Definition Classes
override def renew(authenticator: SessionAuthenticator, result: Result)(implicit request: RequestHeader): Future[AuthenticatorResult]

Renews an authenticator and replaces the authenticator in session with a new one.

Renews an authenticator and replaces the authenticator in session with a new one.

The old authenticator needn't be revoked because we use a stateless approach here. So only one authenticator can be bound to a user session.

Value parameters

authenticator

The authenticator to update.

request

The request header.

result

The result to manipulate.

Attributes

Returns

The original or a manipulated result.

Definition Classes
override def retrieve[B](implicit request: ExtractableRequest[B]): Future[Option[SessionAuthenticator]]

Retrieves the authenticator from request.

Retrieves the authenticator from request.

Type parameters

B

The type of the request body.

Value parameters

request

The request to retrieve the authenticator from.

Attributes

Returns

Some authenticator or None if no authenticator could be found in request.

Definition Classes
override def touch(authenticator: SessionAuthenticator): Either[SessionAuthenticator, SessionAuthenticator]

Touches an authenticator.

Touches an authenticator.

An authenticator can use sliding window expiration. This means that the authenticator times out after a certain time if it wasn't used. So to mark an authenticator as used it will be touched on every request to a Silhouette action. If an authenticator should not be touched because of the fact that sliding window expiration is disabled, then it should be returned on the right, otherwise it should be returned on the left. An untouched authenticator needn't be updated later by the update method.

Value parameters

authenticator

The authenticator to touch.

Attributes

Returns

The touched authenticator on the left or the untouched authenticator on the right.

Definition Classes
override def update(authenticator: SessionAuthenticator, result: Result)(implicit request: RequestHeader): Future[AuthenticatorResult]

Updates the authenticator and store it in the user session.

Updates the authenticator and store it in the user session.

Because of the fact that we store the authenticator client side in the user session, we must update the authenticator in the session on every subsequent request to keep the last used date in sync.

Value parameters

authenticator

The authenticator to update.

request

The request header.

result

The result to manipulate.

Attributes

Returns

The original or a manipulated result.

Definition Classes

Inherited fields

val logger: Logger

A named logger instance.

A named logger instance.

Attributes

Inherited from:
Logger

Implicits

Implicits

implicit val executionContext: ExecutionContext

The execution context to handle the asynchronous operations.

The execution context to handle the asynchronous operations.

Attributes