use of org.janusgraph.core.JanusGraph in project janusgraph by JanusGraph.
the class HMACAuthenticatorTest method testFailureShortenedToken.
private void testFailureShortenedToken(final Map<String, String> sharedVars) throws AuthenticationException {
final String token = sharedVars.get("hmacToken");
final String bcryptedPass = sharedVars.get("encryptedPass");
final Map<String, String> credentials = new HashMap<>();
final String encodedString = new String(Base64.getUrlDecoder().decode(token));
final String brokenToken = encodedString.substring(0, encodedString.length() - 5);
credentials.put(PROPERTY_TOKEN, brokenToken);
final HMACAuthenticator authenticator = createMockBuilder(HMACAuthenticator.class).addMockedMethod("openGraph").addMockedMethod("createCredentialGraph").createMock();
final Map<String, Object> configMap = new HashMap<String, Object>();
configMap.put(CONFIG_CREDENTIALS_DB, "configCredDb");
configMap.put(HMACAuthenticator.CONFIG_HMAC_SECRET, "secret");
configMap.put(HMACAuthenticator.CONFIG_DEFAULT_PASSWORD, "pass");
configMap.put(HMACAuthenticator.CONFIG_DEFAULT_USER, "user");
configMap.put(HMACAuthenticator.CONFIG_HMAC_ALGO, "HmacSHA256");
configMap.put(HMACAuthenticator.CONFIG_TOKEN_TIMEOUT, 3600000);
final JanusGraph graph = createMock(JanusGraph.class);
final CredentialGraph credentialGraph = createMock(CredentialGraph.class);
final ManagementSystem mgmt = createMock(ManagementSystem.class);
final Transaction tx = createMock(Transaction.class);
final Vertex userVertex = createMock(Vertex.class);
expect(authenticator.openGraph(isA(String.class))).andReturn(graph);
expect(authenticator.createCredentialGraph(isA(JanusGraph.class))).andReturn(credentialGraph);
expect(credentialGraph.findUser(eq("user"))).andReturn(userVertex).anyTimes();
expect(userVertex.value(eq(PROPERTY_PASSWORD))).andReturn(bcryptedPass);
expect(graph.openManagement()).andReturn(mgmt);
expect(graph.tx()).andReturn(tx);
expect(mgmt.containsGraphIndex(eq("byUsername"))).andReturn(true);
tx.rollback();
expectLastCall();
replayAll();
authenticator.setup(configMap);
try {
authenticator.authenticate(credentials);
assertFalse(true);
} catch (AuthenticationException ex) {
assertNotNull(ex);
verifyAll();
resetAll();
}
}
use of org.janusgraph.core.JanusGraph in project janusgraph by JanusGraph.
the class HMACAuthenticatorTest method testTokenTimeout.
private void testTokenTimeout(final Map<String, String> sharedVars) {
final String token = sharedVars.get("hmacToken");
final String bcryptedPass = sharedVars.get("encryptedPass");
final Map<String, String> credentials = new HashMap<>();
credentials.put(PROPERTY_TOKEN, new String(Base64.getUrlDecoder().decode(token)));
final HMACAuthenticator authenticator = createMockBuilder(HMACAuthenticator.class).addMockedMethod("openGraph").addMockedMethod("createCredentialGraph").createMock();
final Map<String, Object> configMap = new HashMap<String, Object>();
configMap.put(CONFIG_CREDENTIALS_DB, "configCredDb");
configMap.put(HMACAuthenticator.CONFIG_HMAC_SECRET, "secret");
configMap.put(HMACAuthenticator.CONFIG_DEFAULT_PASSWORD, "pass");
configMap.put(HMACAuthenticator.CONFIG_DEFAULT_USER, "user");
configMap.put(HMACAuthenticator.CONFIG_HMAC_ALGO, "HmacSHA256");
configMap.put(HMACAuthenticator.CONFIG_TOKEN_TIMEOUT, 1);
final JanusGraph graph = createMock(JanusGraph.class);
final CredentialGraph credentialGraph = createMock(CredentialGraph.class);
final ManagementSystem mgmt = createMock(ManagementSystem.class);
final Transaction tx = createMock(Transaction.class);
final Vertex userVertex = createMock(Vertex.class);
expect(authenticator.openGraph(isA(String.class))).andReturn(graph);
expect(authenticator.createCredentialGraph(isA(JanusGraph.class))).andReturn(credentialGraph);
expect(credentialGraph.findUser(eq("user"))).andReturn(userVertex).anyTimes();
expect(userVertex.value(eq(PROPERTY_PASSWORD))).andReturn(bcryptedPass);
expect(graph.openManagement()).andReturn(mgmt);
expect(graph.tx()).andReturn(tx);
expect(mgmt.containsGraphIndex(eq("byUsername"))).andReturn(true);
tx.rollback();
expectLastCall();
replayAll();
authenticator.setup(configMap);
AuthenticationException ae = null;
try {
authenticator.authenticate(credentials);
} catch (AuthenticationException e) {
ae = e;
}
assertNotNull(ae);
verifyAll();
}
use of org.janusgraph.core.JanusGraph in project janusgraph by JanusGraph.
the class HMACAuthenticatorTest method testAuthenticateBasicAuthInvalid.
@Test(expected = AuthenticationException.class)
public void testAuthenticateBasicAuthInvalid() throws AuthenticationException {
final Map<String, String> credentials = new HashMap<>();
credentials.put(PROPERTY_USERNAME, "user");
credentials.put(PROPERTY_PASSWORD, "invalid");
final HMACAuthenticator authenticator = createMockBuilder(HMACAuthenticator.class).addMockedMethod("openGraph").addMockedMethod("createCredentialGraph").createMock();
final Map<String, Object> configMap = new HashMap<String, Object>();
configMap.put(CONFIG_CREDENTIALS_DB, "configCredDb");
configMap.put(HMACAuthenticator.CONFIG_HMAC_SECRET, "secret");
configMap.put(HMACAuthenticator.CONFIG_DEFAULT_PASSWORD, "pass");
configMap.put(HMACAuthenticator.CONFIG_DEFAULT_USER, "user");
final JanusGraph graph = createMock(JanusGraph.class);
final CredentialGraph credentialGraph = createMock(CredentialGraph.class);
final ManagementSystem mgmt = createMock(ManagementSystem.class);
final Transaction tx = createMock(Transaction.class);
final Vertex userVertex = createMock(Vertex.class);
final String bcryptedPass = BCrypt.hashpw("pass", BCrypt.gensalt(4));
expect(authenticator.openGraph(isA(String.class))).andReturn(graph);
expect(authenticator.createCredentialGraph(isA(JanusGraph.class))).andReturn(credentialGraph);
expect(credentialGraph.findUser(eq("user"))).andReturn(userVertex).times(2);
expect(userVertex.value(eq(PROPERTY_PASSWORD))).andReturn(bcryptedPass);
expect(graph.tx()).andReturn(tx);
expect(graph.openManagement()).andReturn(mgmt);
expect(mgmt.containsGraphIndex(eq("byUsername"))).andReturn(true);
tx.rollback();
expectLastCall();
tx.rollback();
expectLastCall();
replayAll();
authenticator.setup(configMap);
authenticator.authenticate(credentials);
verifyAll();
}
use of org.janusgraph.core.JanusGraph in project janusgraph by JanusGraph.
the class HMACAuthenticatorTest method testAuthenticateWithToken.
private void testAuthenticateWithToken(final Map<String, String> sharedVars) throws AuthenticationException {
final String token = sharedVars.get("hmacToken");
final String bcryptedPass = sharedVars.get("encryptedPass");
final Map<String, String> credentials = new HashMap<>();
credentials.put(PROPERTY_TOKEN, new String(Base64.getUrlDecoder().decode(token)));
final HMACAuthenticator authenticator = createMockBuilder(HMACAuthenticator.class).addMockedMethod("openGraph").addMockedMethod("createCredentialGraph").createMock();
final Map<String, Object> configMap = new HashMap<String, Object>();
configMap.put(CONFIG_CREDENTIALS_DB, "configCredDb");
configMap.put(HMACAuthenticator.CONFIG_HMAC_SECRET, "secret");
configMap.put(HMACAuthenticator.CONFIG_DEFAULT_PASSWORD, "pass");
configMap.put(HMACAuthenticator.CONFIG_DEFAULT_USER, "user");
configMap.put(HMACAuthenticator.CONFIG_HMAC_ALGO, "HmacSHA256");
configMap.put(HMACAuthenticator.CONFIG_TOKEN_TIMEOUT, 3600000);
final JanusGraph graph = createMock(JanusGraph.class);
final CredentialGraph credentialGraph = createMock(CredentialGraph.class);
final ManagementSystem mgmt = createMock(ManagementSystem.class);
final Transaction tx = createMock(Transaction.class);
final Vertex userVertex = createMock(Vertex.class);
expect(authenticator.openGraph(isA(String.class))).andReturn(graph);
expect(authenticator.createCredentialGraph(isA(JanusGraph.class))).andReturn(credentialGraph);
expect(credentialGraph.findUser(eq("user"))).andReturn(userVertex).anyTimes();
expect(userVertex.value(eq(PROPERTY_PASSWORD))).andReturn(bcryptedPass);
expect(graph.openManagement()).andReturn(mgmt);
expect(graph.tx()).andReturn(tx);
expect(mgmt.containsGraphIndex(eq("byUsername"))).andReturn(true);
tx.rollback();
expectLastCall();
replayAll();
authenticator.setup(configMap);
assertNotNull(authenticator.authenticate(credentials));
verifyAll();
resetAll();
}
use of org.janusgraph.core.JanusGraph in project janusgraph by JanusGraph.
the class SaslAndHMACAuthenticatorTest method testSetupEmptyNoUserDefault.
@Test(expected = IllegalStateException.class)
public void testSetupEmptyNoUserDefault() {
final SaslAndHMACAuthenticator authenticator = createMockBuilder(SaslAndHMACAuthenticator.class).addMockedMethod("openGraph").addMockedMethod("createCredentialGraph").createMock();
final JanusGraph graph = createMock(JanusGraph.class);
final CredentialGraph credentialGraph = createMock(CredentialGraph.class);
final Map<String, Object> configMap = new HashMap<String, Object>();
configMap.put(CONFIG_CREDENTIALS_DB, "configCredDb");
configMap.put(SaslAndHMACAuthenticator.CONFIG_DEFAULT_PASSWORD, "pass");
expect(authenticator.openGraph(isA(String.class))).andReturn(graph);
expect(authenticator.createCredentialGraph(isA(JanusGraph.class))).andReturn(credentialGraph);
authenticator.setup(configMap);
}
Aggregations