use of org.apache.tinkerpop.gremlin.server.auth.AuthenticatedUser in project janusgraph by JanusGraph.
the class HttpHMACAuthenticationHandlerTest method testChannelReadBasicAuth.
@Test
public void testChannelReadBasicAuth() throws Exception {
final ChannelHandlerContext ctx = createMock(ChannelHandlerContext.class);
final FullHttpRequest msg = createMock(FullHttpRequest.class);
final HttpHeaders headers = createMock(HttpHeaders.class);
final Authenticator authenticator = createMock(Authenticator.class);
final String encodedUserNameAndPass = Base64.getEncoder().encodeToString("user:pass".getBytes());
expect(msg.getMethod()).andReturn(HttpMethod.POST);
expect(msg.headers()).andReturn(headers).anyTimes();
expect(msg.getUri()).andReturn("/");
expect(headers.get(eq("Authorization"))).andReturn("Basic " + encodedUserNameAndPass);
expect(ctx.fireChannelRead(isA(FullHttpRequest.class))).andReturn(ctx);
expect(authenticator.authenticate(isA(Map.class))).andReturn(new AuthenticatedUser("foo"));
final HttpHMACAuthenticationHandler handler = new HttpHMACAuthenticationHandler(authenticator);
replayAll();
handler.channelRead(ctx, (Object) msg);
verifyAll();
}
use of org.apache.tinkerpop.gremlin.server.auth.AuthenticatedUser in project janusgraph by JanusGraph.
the class HttpHMACAuthenticationHandlerTest method testChannelReadTokenAuth.
@Test
public void testChannelReadTokenAuth() throws Exception {
final ChannelHandlerContext ctx = createMock(ChannelHandlerContext.class);
final FullHttpRequest msg = createMock(FullHttpRequest.class);
final HttpHeaders headers = createMock(HttpHeaders.class);
final Authenticator authenticator = createMock(Authenticator.class);
final String encodedToken = Base64.getEncoder().encodeToString("askdjhf823asdlkfsasd".getBytes());
expect(msg.getMethod()).andReturn(HttpMethod.GET);
expect(msg.headers()).andReturn(headers).anyTimes();
expect(msg.getUri()).andReturn("/");
expect(headers.get(eq("Authorization"))).andReturn("Token " + encodedToken);
expect(ctx.fireChannelRead(isA(FullHttpRequest.class))).andReturn(ctx);
expect(authenticator.authenticate(isA(Map.class))).andReturn(new AuthenticatedUser("foo"));
final HttpHMACAuthenticationHandler handler = new HttpHMACAuthenticationHandler(authenticator);
replayAll();
handler.channelRead(ctx, (Object) msg);
verifyAll();
}
use of org.apache.tinkerpop.gremlin.server.auth.AuthenticatedUser in project janusgraph by JanusGraph.
the class HttpHMACAuthenticationHandlerTest method testChannelReadGetAuthToken.
@Test
public void testChannelReadGetAuthToken() throws Exception {
final ChannelHandlerContext ctx = createMock(ChannelHandlerContext.class);
final FullHttpRequest msg = createMock(FullHttpRequest.class);
final HttpHeaders headers = createMock(HttpHeaders.class);
final Authenticator authenticator = createMock(Authenticator.class);
final ChannelFuture cf = createMock(ChannelFuture.class);
final String encodedUserNameAndPass = Base64.getEncoder().encodeToString("user:pass".getBytes());
final Capture<Map<String, String>> credMap = EasyMock.newCapture(CaptureType.ALL);
expect(msg.getMethod()).andReturn(HttpMethod.GET);
expect(msg.headers()).andReturn(headers).anyTimes();
expect(msg.getUri()).andReturn("/session");
expect(headers.get(eq("Authorization"))).andReturn("Basic " + encodedUserNameAndPass);
expect(authenticator.authenticate(and(isA(Map.class), capture(credMap)))).andReturn(new AuthenticatedUser("foo"));
expect(ctx.writeAndFlush(eqHttpStatus(OK))).andReturn(cf);
expect(cf.addListener(ChannelFutureListener.CLOSE)).andReturn(null);
expect(msg.release()).andReturn(false);
final HttpHMACAuthenticationHandler handler = new HttpHMACAuthenticationHandler(authenticator);
replayAll();
handler.channelRead(ctx, (Object) msg);
verifyAll();
assertNotNull(credMap.getValue().get(HttpHMACAuthenticationHandler.PROPERTY_GENERATE_TOKEN));
}
use of org.apache.tinkerpop.gremlin.server.auth.AuthenticatedUser in project janusgraph by JanusGraph.
the class HMACAuthenticator method authenticate.
@Override
public AuthenticatedUser authenticate(final Map<String, String> credentials) throws AuthenticationException {
if (credentials.get(PROPERTY_GENERATE_TOKEN) != null) {
final AuthenticatedUser user = authenticateUser(credentials);
if (user == null) {
throw new AuthenticationException(AUTH_ERROR);
}
credentials.put(PROPERTY_TOKEN, getToken(credentials));
return user;
} else if (credentials.get(PROPERTY_TOKEN) != null) {
if (validateToken(credentials)) {
return new AuthenticatedUser(credentials.get(PROPERTY_USERNAME));
} else {
throw new AuthenticationException("Invalid token");
}
} else {
return authenticateUser(credentials);
}
}
Aggregations