mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
QQQ-27: fixed fragile test
This commit is contained in:
@ -113,7 +113,7 @@ public class Auth0AuthenticationModule implements QAuthenticationModuleInterface
|
|||||||
///////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////
|
||||||
StateProviderInterface spi = getStateProvider();
|
StateProviderInterface spi = getStateProvider();
|
||||||
Auth0StateKey key = new Auth0StateKey(qSession.getIdReference());
|
Auth0StateKey key = new Auth0StateKey(qSession.getIdReference());
|
||||||
spi.put(key, getNow());
|
spi.put(key, Instant.now());
|
||||||
|
|
||||||
return (qSession);
|
return (qSession);
|
||||||
}
|
}
|
||||||
@ -174,7 +174,7 @@ public class Auth0AuthenticationModule implements QAuthenticationModuleInterface
|
|||||||
// - so this is basically saying, if the time between the last time we checked the token and //
|
// - so this is basically saying, if the time between the last time we checked the token and //
|
||||||
// right now is more than ID_TOKEN_VALIDATION_INTERVAL_SECTIONS, then session needs revalidated //
|
// right now is more than ID_TOKEN_VALIDATION_INTERVAL_SECTIONS, then session needs revalidated //
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
return (Duration.between(lastTimeChecked, getNow()).compareTo(Duration.ofSeconds(ID_TOKEN_VALIDATION_INTERVAL_SECONDS)) < 0);
|
return (Duration.between(lastTimeChecked, Instant.now()).compareTo(Duration.ofSeconds(ID_TOKEN_VALIDATION_INTERVAL_SECONDS)) < 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (false);
|
return (false);
|
||||||
@ -182,32 +182,6 @@ public class Auth0AuthenticationModule implements QAuthenticationModuleInterface
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
** public method so that 'now' can be used for testing purposes
|
|
||||||
** - defaults to real 'now'
|
|
||||||
*******************************************************************************/
|
|
||||||
public Instant getNow()
|
|
||||||
{
|
|
||||||
if(now == null)
|
|
||||||
{
|
|
||||||
now = Instant.now();
|
|
||||||
}
|
|
||||||
|
|
||||||
return (now);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
** public method so that 'now' can be set for testing purposes
|
|
||||||
*******************************************************************************/
|
|
||||||
public void setNow(Instant now)
|
|
||||||
{
|
|
||||||
this.now = now;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
** makes request to check if a token is still valid and build new qSession if it is
|
** makes request to check if a token is still valid and build new qSession if it is
|
||||||
**
|
**
|
||||||
@ -283,7 +257,7 @@ public class Auth0AuthenticationModule implements QAuthenticationModuleInterface
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
private static class Auth0StateKey extends AbstractStateKey
|
public static class Auth0StateKey extends AbstractStateKey
|
||||||
{
|
{
|
||||||
private final String key;
|
private final String key;
|
||||||
|
|
||||||
|
@ -30,6 +30,8 @@ import com.kingsrook.qqq.backend.core.model.metadata.QInstance;
|
|||||||
import com.kingsrook.qqq.backend.core.model.session.QSession;
|
import com.kingsrook.qqq.backend.core.model.session.QSession;
|
||||||
import com.kingsrook.qqq.backend.core.modules.authentication.metadata.Auth0AuthenticationMetaData;
|
import com.kingsrook.qqq.backend.core.modules.authentication.metadata.Auth0AuthenticationMetaData;
|
||||||
import com.kingsrook.qqq.backend.core.modules.authentication.metadata.QAuthenticationMetaData;
|
import com.kingsrook.qqq.backend.core.modules.authentication.metadata.QAuthenticationMetaData;
|
||||||
|
import com.kingsrook.qqq.backend.core.state.InMemoryStateProvider;
|
||||||
|
import com.kingsrook.qqq.backend.core.state.StateProviderInterface;
|
||||||
import com.kingsrook.qqq.backend.core.utils.TestUtils;
|
import com.kingsrook.qqq.backend.core.utils.TestUtils;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import static com.kingsrook.qqq.backend.core.modules.authentication.Auth0AuthenticationModule.AUTH0_ID_TOKEN_KEY;
|
import static com.kingsrook.qqq.backend.core.modules.authentication.Auth0AuthenticationModule.AUTH0_ID_TOKEN_KEY;
|
||||||
@ -61,21 +63,28 @@ public class Auth0AuthenticationModuleTest
|
|||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
@Test
|
@Test
|
||||||
public void testValidToken() throws QAuthenticationException
|
public void testLastTimeChecked() throws QAuthenticationException
|
||||||
{
|
{
|
||||||
Map<String, String> context = new HashMap<>();
|
|
||||||
context.put(AUTH0_ID_TOKEN_KEY, VALID_TOKEN);
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////
|
||||||
// Tuesday, July 19, 2022 12:40:27.299 PM GMT-05:00 DST //
|
// Tuesday, July 19, 2022 12:40:27.299 PM GMT-05:00 DST //
|
||||||
//////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////
|
||||||
Instant now = Instant.ofEpochMilli(1658252427299L);
|
Instant now = Instant.now();
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////
|
||||||
|
// put the 'now' from the past into the state provider //
|
||||||
|
/////////////////////////////////////////////////////////
|
||||||
|
StateProviderInterface spi = InMemoryStateProvider.getInstance();
|
||||||
|
Auth0AuthenticationModule.Auth0StateKey key = new Auth0AuthenticationModule.Auth0StateKey(VALID_TOKEN);
|
||||||
|
spi.put(key, now);
|
||||||
|
|
||||||
|
//////////////////////
|
||||||
|
// build up session //
|
||||||
|
//////////////////////
|
||||||
|
QSession session = new QSession();
|
||||||
|
session.setIdReference(VALID_TOKEN);
|
||||||
|
|
||||||
Auth0AuthenticationModule auth0AuthenticationModule = new Auth0AuthenticationModule();
|
Auth0AuthenticationModule auth0AuthenticationModule = new Auth0AuthenticationModule();
|
||||||
auth0AuthenticationModule.setNow(now);
|
assertEquals(true, auth0AuthenticationModule.isSessionValid(session), "Session should return as still valid.");
|
||||||
QSession session = auth0AuthenticationModule.createSession(getQInstance(), context);
|
|
||||||
assertEquals("tim.chamberlain@kingsrook.com", session.getUser().getIdReference(), "Id should be Tim's email.");
|
|
||||||
assertEquals("Tim Chamberlain", session.getUser().getFullName(), "Full name should be Tim's full name (well without the middle name).");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user