AuthorizationHandler

scalaoauth2.provider.AuthorizationHandler

Provide Authorization phases support for using OAuth 2.0.

=== [Authorization phases] ===

==== Authorization Code Grant ====

  • validateClient(request)

  • findAuthInfoByCode(code)

  • deleteAuthCode(code)

  • getStoredAccessToken(authInfo)

  • refreshAccessToken(authInfo, token)

  • createAccessToken(authInfo)

==== Refresh Token Grant ====

  • validateClient(clientCredential, grantType)

  • findAuthInfoByRefreshToken(refreshToken)

  • refreshAccessToken(authInfo, refreshToken)

==== Resource Owner Password Credentials Grant ====

  • validateClient(request)

  • findUser(request)

  • getStoredAccessToken(authInfo)

  • refreshAccessToken(authInfo, token)

  • createAccessToken(authInfo)

==== Client Credentials Grant ====

  • validateClient(request)

  • findUser(request)

  • getStoredAccessToken(authInfo)

  • refreshAccessToken(authInfo, token)

  • createAccessToken(authInfo)

==== Implicit Grant ====

  • validateClient(request)

  • findUser(request)

  • getStoredAccessToken(authInfo)

  • createAccessToken(authInfo)

Attributes

Source
AuthorizationHandler.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait DataHandler[U]

Members list

Value members

Abstract methods

def createAccessToken(authInfo: AuthInfo[U]): Future[AccessToken]

Creates a new access token by authorized information.

Creates a new access token by authorized information.

Value parameters

authInfo

This value is already authorized by system.

Attributes

Returns

Access token returns to client.

Source
AuthorizationHandler.scala
def deleteAuthCode(code: String): Future[Unit]

Deletes an authorization code.

Deletes an authorization code.

Called when an AccessToken has been successfully issued via an authorization code.

If you don't support Authorization Code Grant, then you don't need to implement this method.

Value parameters

code

Client-sent authorization code

Attributes

Source
AuthorizationHandler.scala
def findAuthInfoByCode(code: String): Future[Option[AuthInfo[U]]]

Find authorized information by authorization code.

Find authorized information by authorization code.

If you don't support Authorization Code Grant then doesn't need implementing.

Value parameters

code

Client sends authorization code which is registered by system.

Attributes

Returns

Return authorized information that matched the code.

Source
AuthorizationHandler.scala
def findAuthInfoByRefreshToken(refreshToken: String): Future[Option[AuthInfo[U]]]

Find authorized information by refresh token.

Find authorized information by refresh token.

If you don't support Refresh Token Grant then doesn't need implementing.

Value parameters

refreshToken

Client sends refresh token which is created by system.

Attributes

Returns

Return authorized information that matched the refresh token.

Source
AuthorizationHandler.scala
def findUser(maybeCredential: Option[ClientCredential], request: AuthorizationRequest): Future[Option[U]]

Authenticate the user that issued the authorization request. Client credential, Password and Implicit Grant call this method.

Authenticate the user that issued the authorization request. Client credential, Password and Implicit Grant call this method.

Value parameters

maybeCredential

client credential parsed from request

request

Request sent by client.

Attributes

Source
AuthorizationHandler.scala
def getStoredAccessToken(authInfo: AuthInfo[U]): Future[Option[AccessToken]]

Returns stored access token by authorized information.

Returns stored access token by authorized information.

If want to create new access token then have to return None

Value parameters

authInfo

This value is already authorized by system.

Attributes

Returns

Access token returns to client.

Source
AuthorizationHandler.scala
def refreshAccessToken(authInfo: AuthInfo[U], refreshToken: String): Future[AccessToken]

Creates a new access token by refreshToken.

Creates a new access token by refreshToken.

Value parameters

authInfo

This value is already authorized by system.

Attributes

Returns

Access token returns to client.

Source
AuthorizationHandler.scala
def validateClient(maybeCredential: Option[ClientCredential], request: AuthorizationRequest): Future[Boolean]

Verify proper client with parameters for issue an access token. Note that per the OAuth Specification, a Client may be valid if it only contains a client ID but no client secret (common with Public Clients). However, if the registered client has a client secret value the specification requires that a client secret must always be provided and verified for that client ID.

Verify proper client with parameters for issue an access token. Note that per the OAuth Specification, a Client may be valid if it only contains a client ID but no client secret (common with Public Clients). However, if the registered client has a client secret value the specification requires that a client secret must always be provided and verified for that client ID.

Value parameters

maybeCredential

client credential parsed from request

request

Request sent by client.

Attributes

Returns

true if request is a regular client, false if request is a illegal client.

Source
AuthorizationHandler.scala