Class TokenBasedAuthentication
- java.lang.Object
-
- org.apache.jackrabbit.core.security.authentication.token.TokenBasedAuthentication
-
- All Implemented Interfaces:
Authentication
public class TokenBasedAuthentication extends Object implements Authentication
Authentication implementation that compares the tokens stored with a given user node to the token present in the SimpleCredentials attributes. Authentication succeeds if the login token refers to a non-expired token node and if all other credential attributes are equal to the corresponding properties.
-
-
Field Summary
Fields Modifier and Type Field Description static String
PARAM_COMPAT
Deprecated.This system parameter allows to enable backwards compatible behavior of theTokenBasedAuthentication
.static String
TOKEN_ATTRIBUTE
The name of the login token attribute.static long
TOKEN_EXPIRATION
Default expiration time for login tokens is 2 hours.
-
Constructor Summary
Constructors Constructor Description TokenBasedAuthentication(String token, long tokenExpiration, Session session)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
authenticate(Credentials credentials)
True if the Credentials identify theUser
related to this Authentication.boolean
canHandle(Credentials credentials)
An Authentication may only be able to handle certain types ofCredentials
as the authentication process is tightly coupled to the semantics of theCredentials
.static Credentials
createToken(User user, SimpleCredentials credentials, long tokenExpiration, Session session)
Create a new token node for the specified user.static boolean
doCreateToken(Credentials credentials)
Returnstrue
if the specifiedcredentials
should be used to create a new login token.static Node
getTokenNode(TokenCredentials credentials, Session session)
static String
getUserId(TokenCredentials tokenCredentials, Session session)
static boolean
isMandatoryAttribute(String attributeName)
static boolean
isTokenBasedLogin(Credentials credentials)
Returnstrue
if the givencredentials
object is an instance ofTokenCredentials
.
-
-
-
Field Detail
-
TOKEN_EXPIRATION
public static final long TOKEN_EXPIRATION
Default expiration time for login tokens is 2 hours.- See Also:
- Constant Field Values
-
TOKEN_ATTRIBUTE
public static final String TOKEN_ATTRIBUTE
The name of the login token attribute.- See Also:
- Constant Field Values
-
PARAM_COMPAT
@Deprecated public static final String PARAM_COMPAT
Deprecated.This system parameter allows to enable backwards compatible behavior of theTokenBasedAuthentication
. Note that as of OAK 1.0 this flag will no be supported.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
TokenBasedAuthentication
public TokenBasedAuthentication(String token, long tokenExpiration, Session session) throws RepositoryException
- Throws:
RepositoryException
-
-
Method Detail
-
canHandle
public boolean canHandle(Credentials credentials)
Description copied from interface:Authentication
An Authentication may only be able to handle certain types ofCredentials
as the authentication process is tightly coupled to the semantics of theCredentials
. E.g.: A ticket basedAuthentication
is dependant on a Credentials implementation which allows access to this ticket.- Specified by:
canHandle
in interfaceAuthentication
- Parameters:
credentials
- in questions- Returns:
true
if the current Authentication handles the given Credentials- See Also:
Authentication.canHandle(javax.jcr.Credentials)
-
authenticate
public boolean authenticate(Credentials credentials) throws RepositoryException
Description copied from interface:Authentication
True if the Credentials identify theUser
related to this Authentication.- Specified by:
authenticate
in interfaceAuthentication
- Parameters:
credentials
- to verify- Returns:
true
ifCredentials
identify theUser
.- Throws:
RepositoryException
- If an error occurs.- See Also:
Authentication.authenticate(javax.jcr.Credentials)
-
isTokenBasedLogin
public static boolean isTokenBasedLogin(Credentials credentials)
Returnstrue
if the givencredentials
object is an instance ofTokenCredentials
.- Parameters:
credentials
-- Returns:
true
if the givencredentials
object is an instance ofTokenCredentials
;false
otherwise.
-
isMandatoryAttribute
public static boolean isMandatoryAttribute(String attributeName)
- Parameters:
attributeName
-- Returns:
true
if the specifiedattributeName
starts with or equalsTOKEN_ATTRIBUTE
.
-
doCreateToken
public static boolean doCreateToken(Credentials credentials)
Returnstrue
if the specifiedcredentials
should be used to create a new login token.- Parameters:
credentials
-- Returns:
true
if upon successful authentication a new login token should be created;false
otherwise.
-
createToken
public static Credentials createToken(User user, SimpleCredentials credentials, long tokenExpiration, Session session) throws RepositoryException
Create a new token node for the specified user.- Parameters:
user
-credentials
-tokenExpiration
-session
-- Returns:
- A new instance of
TokenCredentials
to be used for further login actions against this Authentication implementation. - Throws:
RepositoryException
- If there is no node corresponding to the specified user in the current workspace or if an error occurs while creating the token node.
-
getTokenNode
public static Node getTokenNode(TokenCredentials credentials, Session session) throws RepositoryException
- Throws:
RepositoryException
-
getUserId
public static String getUserId(TokenCredentials tokenCredentials, Session session) throws RepositoryException
- Throws:
RepositoryException
-
-