Class AccessTokenServiceImpl
java.lang.Object
org.craftercms.studio.impl.v2.service.security.AccessTokenServiceImpl
- All Implemented Interfaces:
AccessTokenService
Default implementation of
AccessTokenService
- Since:
- 4.0
- Author:
- joseross
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionAccessTokenServiceImpl
(AccessTokenServiceInternal accessTokenServiceInternal) -
Method Summary
Modifier and TypeMethodDescriptioncreateAccessToken
(String label, Instant expiresAt) Creates a new access token for the current usercreateTokens
(org.springframework.security.core.Authentication auth, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Creates the access & refresh tokens for the given authenticationvoid
deleteAccessToken
(long id) Deletes an access token for the current uservoid
Deletes all expired refresh tokensvoid
deletePreviewCookie
(jakarta.servlet.http.HttpServletResponse response) Deletes the preview cookievoid
deleteRefreshToken
(long userId) Deletes the refresh token for the given userGet all existing access tokens for the current usergetUsername
(String token) Returns the username for the given access tokenboolean
hasValidRefreshToken
(org.springframework.security.core.Authentication auth, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Checks if the given request contains a valid refresh tokenvoid
refreshPreviewCookie
(org.springframework.security.core.Authentication authentication, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, boolean silent) Refresh the preview site cookie.updateAccessToken
(long id, boolean enabled) Updates an access token for the current uservoid
updateRefreshToken
(org.springframework.security.core.Authentication auth, jakarta.servlet.http.HttpServletResponse response) Updates the refresh token for the given responsevoid
updateUserActivity
(org.springframework.security.core.Authentication authentication) Updates the user activity record to extend the timeoutMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.craftercms.studio.api.v2.service.security.AccessTokenService
refreshPreviewCookie
-
Field Details
-
accessTokenServiceInternal
-
-
Constructor Details
-
AccessTokenServiceImpl
@ConstructorProperties("accessTokenServiceInternal") public AccessTokenServiceImpl(AccessTokenServiceInternal accessTokenServiceInternal)
-
-
Method Details
-
hasValidRefreshToken
public boolean hasValidRefreshToken(org.springframework.security.core.Authentication auth, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) Description copied from interface:AccessTokenService
Checks if the given request contains a valid refresh token- Specified by:
hasValidRefreshToken
in interfaceAccessTokenService
- Parameters:
auth
- the current authenticationrequest
- the request to checkresponse
- the response- Returns:
- true if the request contains a valid refresh token
-
updateRefreshToken
public void updateRefreshToken(org.springframework.security.core.Authentication auth, jakarta.servlet.http.HttpServletResponse response) Description copied from interface:AccessTokenService
Updates the refresh token for the given response- Specified by:
updateRefreshToken
in interfaceAccessTokenService
- Parameters:
auth
- the current authenticationresponse
- the response
-
createTokens
public AccessToken createTokens(org.springframework.security.core.Authentication auth, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response) throws ServiceLayerException Description copied from interface:AccessTokenService
Creates the access & refresh tokens for the given authentication- Specified by:
createTokens
in interfaceAccessTokenService
- Parameters:
auth
- the current authenticationrequest
- the requestresponse
- the response- Returns:
- the access token
- Throws:
ServiceLayerException
- if there is any error creating the access token
-
deleteRefreshToken
public void deleteRefreshToken(long userId) Description copied from interface:AccessTokenService
Deletes the refresh token for the given user- Specified by:
deleteRefreshToken
in interfaceAccessTokenService
- Parameters:
userId
- the id of the user
-
deleteExpiredRefreshTokens
public void deleteExpiredRefreshTokens()Description copied from interface:AccessTokenService
Deletes all expired refresh tokens- Specified by:
deleteExpiredRefreshTokens
in interfaceAccessTokenService
-
createAccessToken
public PersistentAccessToken createAccessToken(String label, Instant expiresAt) throws ServiceLayerException Description copied from interface:AccessTokenService
Creates a new access token for the current user- Specified by:
createAccessToken
in interfaceAccessTokenService
- Parameters:
label
- the label of the access tokenexpiresAt
- the date of expiration of the access token- Returns:
- the access token
- Throws:
ServiceLayerException
- if there is any error creating the access token
-
getAccessTokens
Description copied from interface:AccessTokenService
Get all existing access tokens for the current user- Specified by:
getAccessTokens
in interfaceAccessTokenService
- Returns:
- the list of access tokens
-
updateAccessToken
Description copied from interface:AccessTokenService
Updates an access token for the current user- Specified by:
updateAccessToken
in interfaceAccessTokenService
- Parameters:
id
- the id of the access tokenenabled
- indicates if the token is enabled or not- Returns:
- the updated access token
-
deleteAccessToken
public void deleteAccessToken(long id) Description copied from interface:AccessTokenService
Deletes an access token for the current user- Specified by:
deleteAccessToken
in interfaceAccessTokenService
- Parameters:
id
- the id of the access token
-
getUsername
Description copied from interface:AccessTokenService
Returns the username for the given access token- Specified by:
getUsername
in interfaceAccessTokenService
- Parameters:
token
- the access token- Returns:
- the username, null if the access token is invalid
-
updateUserActivity
public void updateUserActivity(org.springframework.security.core.Authentication authentication) Description copied from interface:AccessTokenService
Updates the user activity record to extend the timeout- Specified by:
updateUserActivity
in interfaceAccessTokenService
- Parameters:
authentication
- the current authentication
-
refreshPreviewCookie
public void refreshPreviewCookie(org.springframework.security.core.Authentication authentication, jakarta.servlet.http.HttpServletRequest request, jakarta.servlet.http.HttpServletResponse response, boolean silent) throws ServiceLayerException Description copied from interface:AccessTokenService
Refresh the preview site cookie. This method will either update the cookie (or create it) with the current preview site if the user has access to it, or remove it if they do not.- Specified by:
refreshPreviewCookie
in interfaceAccessTokenService
- Parameters:
authentication
- the current authenticationrequest
- the requestresponse
- the responsesilent
- if false, the method will throw an exception if the user does not have access to the preview site- Throws:
ServiceLayerException
-
deletePreviewCookie
public void deletePreviewCookie(jakarta.servlet.http.HttpServletResponse response) Description copied from interface:AccessTokenService
Deletes the preview cookie- Specified by:
deletePreviewCookie
in interfaceAccessTokenService
- Parameters:
response
- the response
-