use of org.neo4j.internal.kernel.api.security.LoginContext in project neo4j by neo4j.
the class UserSecurityGraphComponentTest method shouldAuthenticate.
@ParameterizedTest
@MethodSource("supportedPreviousVersions")
void shouldAuthenticate(UserSecurityGraphComponentVersion version) throws Exception {
initializeLatestSystem();
initUserSecurityComponent(version);
LoginContext loginContext = authManager.login(AuthToken.newBasicAuthToken("neo4j", "neo4j"), EMBEDDED_CONNECTION);
Assertions.assertThat(loginContext.subject().getAuthenticationResult()).isEqualTo(AuthenticationResult.PASSWORD_CHANGE_REQUIRED);
}
use of org.neo4j.internal.kernel.api.security.LoginContext in project neo4j by neo4j.
the class BasicSystemGraphRealmTest method assertLoginGivesResult.
private void assertLoginGivesResult(String username, String password, AuthenticationResult expectedResult) throws InvalidAuthTokenException {
LoginContext securityContext = realm.login(authToken(username, password), EMBEDDED_CONNECTION);
assertThat(securityContext.subject().getAuthenticationResult()).isEqualTo(expectedResult);
}
use of org.neo4j.internal.kernel.api.security.LoginContext in project neo4j by neo4j.
the class AuthProceduresIT method assertFail.
private void assertFail(LoginContext subject, String query, String partOfErrorMsg) {
Consumer<ResourceIterator<Map<String, Object>>> resultConsumer = row -> {
assert !row.hasNext();
};
try (Transaction tx = systemDb.beginTransaction(KernelTransaction.Type.IMPLICIT, subject)) {
Result result = tx.execute(query);
resultConsumer.accept(result);
tx.commit();
fail("Expected query to fail");
} catch (Exception e) {
assertThat(e.getMessage()).contains(partOfErrorMsg);
}
}
use of org.neo4j.internal.kernel.api.security.LoginContext in project neo4j by neo4j.
the class KernelTransactionsTest method shouldNotLeakTransactionOnSecurityContextFreezeFailure.
@Test
void shouldNotLeakTransactionOnSecurityContextFreezeFailure() throws Throwable {
KernelTransactions kernelTransactions = newKernelTransactions();
LoginContext loginContext = mock(LoginContext.class);
when(loginContext.authorize(any(), any(), any())).thenThrow(new AuthorizationExpiredException("Freeze failed."));
assertThatThrownBy(() -> kernelTransactions.newInstance(EXPLICIT, loginContext, EMBEDDED_CONNECTION, 0L)).isInstanceOf(AuthorizationExpiredException.class).hasMessage("Freeze failed.");
assertThat(kernelTransactions.activeTransactions()).as("We should not have any transaction").isEmpty();
}
use of org.neo4j.internal.kernel.api.security.LoginContext in project neo4j by neo4j.
the class AuthorizationDisabledFilter method doFilter.
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
validateRequestType(servletRequest);
validateResponseType(servletResponse);
final HttpServletRequest request = (HttpServletRequest) servletRequest;
final HttpServletResponse response = (HttpServletResponse) servletResponse;
try {
ClientConnectionInfo connectionInfo = HttpConnectionInfoFactory.create(request);
LoginContext loginContext = getAuthDisabledLoginContext(connectionInfo);
String userAgent = request.getHeader(HttpHeaders.USER_AGENT);
JettyHttpConnection.updateUserForCurrentConnection(loginContext.subject().username(), userAgent);
filterChain.doFilter(new AuthorizedRequestWrapper(BASIC_AUTH, "neo4j", request, loginContext), servletResponse);
} catch (AuthorizationViolationException e) {
unauthorizedAccess(e.getMessage()).accept(response);
}
}
Aggregations