use of org.forgerock.openam.cts.api.tokens.Token in project OpenAM by OpenRock.
the class CoreTokenAdapterTest method shouldReadToken.
@SuppressWarnings("unchecked")
@Test
public void shouldReadToken() throws Exception {
// Given
String tokenId = "badger";
Token token = new Token(tokenId, TokenType.SESSION);
ResultHandler<Token, CoreTokenException> mockResultHandler = mock(ResultHandler.class);
given(mockResultHandler.getResults()).willReturn(token);
given(mockResultHandlerFactory.getReadHandler()).willReturn(mockResultHandler);
// When
Token result = adapter.read(tokenId);
// Then
assertThat(result.getTokenId()).isEqualTo(tokenId);
}
use of org.forgerock.openam.cts.api.tokens.Token in project OpenAM by OpenRock.
the class ReadTask method performTask.
/**
* Uses the LDAP Adapter to perform the read and updates the result handler with
* the success or failure result.
*
* In the event of a failure, this function will still throw the expected
* exception, even though the result handler will be notified.
*
* @param connection Non null connection.
* @param adapter Non null for connection-coupled operations.
* @throws DataLayerException If there was an error whilst performing the read.
*/
@Override
public void performTask(Object connection, TokenStorageAdapter adapter) throws DataLayerException {
Token token = adapter.read(connection, tokenId);
handler.processResults(token);
}
use of org.forgerock.openam.cts.api.tokens.Token in project OpenAM by OpenRock.
the class UpdateTask method performTask.
/**
* Performs a read of the store to determine the state of the Token.
*
* If the Token exists, then an update is performed, otherwise a create is
* performed.
*
* @param connection Non null Connection.
* @param adapter Non null for connection-coupled operations.
* @throws DataLayerException If there was an error of any kind.
*/
@Override
public void performTask(Object connection, TokenStorageAdapter adapter) throws DataLayerException {
Token previous = adapter.read(connection, token.getTokenId());
if (previous == null) {
adapter.create(connection, token);
} else {
adapter.update(connection, previous, token);
}
handler.processResults(token);
}
use of org.forgerock.openam.cts.api.tokens.Token in project OpenAM by OpenRock.
the class TokenDataStore method create.
/**
* Create an object. The id field will be populated with the resulting identifier.
*
* @param obj The object being created.
* @throws ServerException When an error occurs during creation.
*/
public void create(T obj) throws ServerException {
Token token = adapter.toToken(obj);
SyncResultHandler<Token> handler = new SyncResultHandler<Token>();
try {
taskExecutor.execute(token.getTokenId(), taskFactory.create(token, handler));
handler.getResults();
} catch (ServerException e) {
throw e;
} catch (DataLayerException e) {
if (debug.warningEnabled()) {
debug.warning("Unable to create token corresponding", e);
}
throw new ServerException("Could not create token in token data store: " + e.getMessage());
}
}
use of org.forgerock.openam.cts.api.tokens.Token in project OpenAM by OpenRock.
the class TokenDataStore method update.
/**
* Update a given instance.
*
* @param obj The object being updated.
* @throws ServerException When the object cannot be found, or an error occurs during update.
*/
public void update(T obj) throws NotFoundException, ServerException {
SyncResultHandler<Token> handler = new SyncResultHandler<Token>();
Token token = adapter.toToken(obj);
try {
// Check it exists
read(token.getTokenId());
// Update it
taskExecutor.execute(token.getTokenId(), taskFactory.update(token, handler));
handler.getResults();
} catch (ServerException e) {
throw e;
} catch (NotFoundException e) {
throw e;
} catch (DataLayerException e) {
if (debug.warningEnabled()) {
debug.warning("Unable to create token corresponding", e);
}
throw new ServerException("Could not create token in token data store: " + e.getMessage());
}
}
Aggregations