Search in sources :

Example 26 with Token

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);
}
Also used : CoreTokenException(org.forgerock.openam.cts.exceptions.CoreTokenException) Token(org.forgerock.openam.cts.api.tokens.Token) PartialToken(org.forgerock.openam.sm.datalayer.api.query.PartialToken) Test(org.testng.annotations.Test)

Example 27 with Token

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);
}
Also used : Token(org.forgerock.openam.cts.api.tokens.Token)

Example 28 with 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);
}
Also used : Token(org.forgerock.openam.cts.api.tokens.Token)

Example 29 with 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());
    }
}
Also used : DataLayerException(org.forgerock.openam.sm.datalayer.api.DataLayerException) Token(org.forgerock.openam.cts.api.tokens.Token)

Example 30 with Token

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());
    }
}
Also used : DataLayerException(org.forgerock.openam.sm.datalayer.api.DataLayerException) Token(org.forgerock.openam.cts.api.tokens.Token)

Aggregations

Token (org.forgerock.openam.cts.api.tokens.Token)86 Test (org.testng.annotations.Test)58 Task (org.forgerock.openam.sm.datalayer.api.Task)17 ResultHandler (org.forgerock.openam.sm.datalayer.api.ResultHandler)16 PartialToken (org.forgerock.openam.sm.datalayer.api.query.PartialToken)16 InvocationOnMock (org.mockito.invocation.InvocationOnMock)14 CoreTokenException (org.forgerock.openam.cts.exceptions.CoreTokenException)13 InternalSession (com.iplanet.dpro.session.service.InternalSession)8 DataLayerException (org.forgerock.openam.sm.datalayer.api.DataLayerException)8 Calendar (java.util.Calendar)7 JsonValue (org.forgerock.json.JsonValue)7 SessionID (com.iplanet.dpro.session.SessionID)6 TokenFilter (org.forgerock.openam.cts.api.filter.TokenFilter)6 Collection (java.util.Collection)5 HashMap (java.util.HashMap)5 Entry (org.forgerock.opendj.ldap.Entry)5 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)4 SAMLToken (org.forgerock.openam.cts.api.tokens.SAMLToken)4 Connection (org.forgerock.opendj.ldap.Connection)4 LinkedHashMapEntry (org.forgerock.opendj.ldap.LinkedHashMapEntry)4