Class AuthenticationTokenManager
- java.lang.Object
-
- org.ametys.runtime.plugin.component.AbstractLogEnabled
-
- org.ametys.core.authentication.token.AuthenticationTokenManager
-
- All Implemented Interfaces:
LogEnabled,Initializable,Component,Serviceable
public class AuthenticationTokenManager extends AbstractLogEnabled implements Component, Serviceable, Initializable
The component to handle temporary authentication token.
Token can only be used once and are available for a short time only.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAuthenticationTokenManager.TokenAn Ametys authentication token
-
Field Summary
Fields Modifier and Type Field Description static StringROLEThe avalon rolestatic StringTOKEN_SEPARATORThe separator in tokenstatic StringUSER_TOKEN_TYPEThe user token type
-
Constructor Summary
Constructors Constructor Description AuthenticationTokenManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddeleteAuthenticationToken(List<Integer> ids)Delete one or multiples authentication tokenvoiddeleteTokenById(Integer tokenId)Destroy the given tokenvoiddeleteTokenByValue(String token, String context)Destroy the given tokenStringgenerateAuthenticationToken(Map<String,Object> parameters)Generate a new authentication tokenStringgenerateToken(long duration, String type, String comment)Generates a new token for the current userStringgenerateToken(UserIdentity user, long duration, boolean autoRenewDuration, Integer nbUsesLeft, Set<String> contexts, String type, String comment)Generates a new tokenStringgenerateToken(UserIdentity user, long duration, Integer nbUsesLeft, String type, String comment)Generates a new tokenStringgenerateToken(UserIdentity user, long duration, String type, String comment)Generates a new tokenList<AuthenticationTokenManager.Token>getTokens(String type)Get the existing tokens for the connected userList<AuthenticationTokenManager.Token>getTokens(UserIdentity user, String type)Get the existing tokens for this uservoidinitialize()voidservice(ServiceManager manager)UserIdentityvalidateToken(String token)Check if a token is valid and return the userUserIdentityvalidateToken(String token, String context)Check if a token is valid and return the user-
Methods inherited from class org.ametys.runtime.plugin.component.AbstractLogEnabled
getLogger, setLogger
-
-
-
-
Field Detail
-
TOKEN_SEPARATOR
public static final String TOKEN_SEPARATOR
The separator in token- See Also:
- Constant Field Values
-
USER_TOKEN_TYPE
public static final String USER_TOKEN_TYPE
The user token type- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AuthenticationTokenManager
public AuthenticationTokenManager()
-
-
Method Detail
-
service
public void service(ServiceManager manager) throws ServiceException
- Specified by:
servicein interfaceServiceable- Throws:
ServiceException
-
initialize
public void initialize() throws Exception
- Specified by:
initializein interfaceInitializable- Throws:
Exception
-
getTokens
public List<AuthenticationTokenManager.Token> getTokens(String type) throws RuntimeException
Get the existing tokens for the connected user- Parameters:
type- The type of tokens to return. null to return all.- Returns:
- The tokens
- Throws:
RuntimeException- If there is no user connected or if there is a database error
-
getTokens
public List<AuthenticationTokenManager.Token> getTokens(UserIdentity user, String type) throws RuntimeException
Get the existing tokens for this user- Parameters:
type- The type of tokens to return. null to return all.user- The user. Cannot be null- Returns:
- The tokens identifier and associated comment
- Throws:
RuntimeException- If the user is null or if there is a database error
-
generateToken
public String generateToken(long duration, String type, String comment) throws RuntimeException
Generates a new token for the current user- Parameters:
duration- The time the token is valid in seconds. 0 means for ever and moreover the ticket will be reusable.type- The type of token. Mandatory but can be anything you want between 1 to 32 characters. Such as "Cookie".comment- An optional token comment to remember the reason of its creation- Returns:
- The token
- Throws:
RuntimeException- If the user is not authenticated, or if there is a database error
-
generateToken
public String generateToken(UserIdentity user, long duration, String type, String comment) throws RuntimeException
Generates a new token- Parameters:
user- The user that will be authenticated with the tokenduration- The time the token is valid in seconds. 0 means for ever and moreover the ticket will be reusabletype- The type of token. Mandatory but can be anything you want between 1 to 32 characters. Such as "Cookie".comment- An optional token comment to remember the reason of its creation- Returns:
- The token
- Throws:
RuntimeException- If the user is null or if there is a database error or if duration is negative
-
generateToken
public String generateToken(UserIdentity user, long duration, Integer nbUsesLeft, String type, String comment) throws RuntimeException
Generates a new token- Parameters:
user- The user that will be authenticated with the tokenduration- The time the token is valid in seconds. 0 means for ever and moreover the ticket will be reusablenbUsesLeft- number of available uses (null for no limit)type- The type of token. Mandatory but can be anything you want between 1 to 32 characters. Such as "Cookie".comment- An optional token comment to remember the reason of its creation- Returns:
- The token
- Throws:
RuntimeException- If the user is null or if there is a database error or if duration is negative
-
generateToken
public String generateToken(UserIdentity user, long duration, boolean autoRenewDuration, Integer nbUsesLeft, Set<String> contexts, String type, String comment) throws RuntimeException
Generates a new token- Parameters:
user- The user that will be authenticated with the tokenduration- The time the token is valid in seconds. 0 means for ever and moreover the ticket will be reusableautoRenewDuration- true to automatically renew token if used before it's expirationnbUsesLeft- number of available uses (null for no limit)contexts- contexts where the token can be usedtype- The type of token. Mandatory but can be anything you want between 1 to 32 characters. Such as "Cookie".comment- An optional token comment to remember the reason of its creation- Returns:
- The token
- Throws:
RuntimeException- If the user is null or if there is a database error or if duration is negative
-
validateToken
public UserIdentity validateToken(String token)
Check if a token is valid and return the user- Parameters:
token- The token to validate- Returns:
- The user associated to the valid token, null otherwise
-
validateToken
public UserIdentity validateToken(String token, String context)
Check if a token is valid and return the user- Parameters:
token- The token to validatecontext- context to validate the token with- Returns:
- The user associated to the valid token, null otherwise
-
deleteTokenByValue
public void deleteTokenByValue(String token, String context)
Destroy the given token- Parameters:
token- The token to removecontext- context of the token (null for no context)
-
deleteTokenById
public void deleteTokenById(Integer tokenId)
Destroy the given token- Parameters:
tokenId- The token identifier to remove
-
generateAuthenticationToken
public String generateAuthenticationToken(Map<String,Object> parameters)
Generate a new authentication token- Parameters:
parameters- a map of the following parameters for the authentication token : description- Returns:
- The generated token
-
deleteAuthenticationToken
public void deleteAuthenticationToken(List<Integer> ids)
Delete one or multiples authentication token- Parameters:
ids- a list of authentication token ids
-
-