Search in sources :

Example 16 with AuthenticatedUser

use of org.apache.cassandra.auth.AuthenticatedUser in project cassandra by apache.

the class InvalidateNetworkPermissionsCacheTest method testInvalidateSingleNetworkPermission.

@Test
public void testInvalidateSingleNetworkPermission() {
    AuthenticatedUser role = new AuthenticatedUser(ROLE_A.getRoleName());
    // cache network permission
    role.hasLocalAccess();
    long originalReadsCount = getNetworkPermissionsReadCount();
    // enure network permission is cached
    assertThat(role.hasLocalAccess()).isTrue();
    assertThat(originalReadsCount).isEqualTo(getNetworkPermissionsReadCount());
    // invalidate network permission
    ToolRunner.ToolResult tool = ToolRunner.invokeNodetool("invalidatenetworkpermissionscache", ROLE_A.getRoleName());
    tool.assertOnCleanExit();
    assertThat(tool.getStdout()).isEmpty();
    // ensure network permission is reloaded
    assertThat(role.hasLocalAccess()).isTrue();
    assertThat(originalReadsCount).isLessThan(getNetworkPermissionsReadCount());
}
Also used : ToolRunner(org.apache.cassandra.tools.ToolRunner) AuthenticatedUser(org.apache.cassandra.auth.AuthenticatedUser) Test(org.junit.Test)

Example 17 with AuthenticatedUser

use of org.apache.cassandra.auth.AuthenticatedUser in project cassandra by apache.

the class InvalidateRolesCacheTest method testInvalidateSingleRole.

@Test
public void testInvalidateSingleRole() {
    AuthenticatedUser role = new AuthenticatedUser(ROLE_A.getRoleName());
    // cache role
    role.canLogin();
    long originalReadsCount = getRolesReadCount();
    // enure role is cached
    assertThat(role.canLogin()).isTrue();
    assertThat(originalReadsCount).isEqualTo(getRolesReadCount());
    // invalidate role
    ToolRunner.ToolResult tool = ToolRunner.invokeNodetool("invalidaterolescache", ROLE_A.getRoleName());
    tool.assertOnCleanExit();
    assertThat(tool.getStdout()).isEmpty();
    // ensure role is reloaded
    assertThat(role.canLogin()).isTrue();
    assertThat(originalReadsCount).isLessThan(getRolesReadCount());
}
Also used : ToolRunner(org.apache.cassandra.tools.ToolRunner) AuthenticatedUser(org.apache.cassandra.auth.AuthenticatedUser) Test(org.junit.Test)

Example 18 with AuthenticatedUser

use of org.apache.cassandra.auth.AuthenticatedUser in project cassandra by apache.

the class InvalidateRolesCacheTest method testInvalidateAllRoles.

@Test
public void testInvalidateAllRoles() {
    AuthenticatedUser roleA = new AuthenticatedUser(ROLE_A.getRoleName());
    AuthenticatedUser roleB = new AuthenticatedUser(ROLE_B.getRoleName());
    // cache roles
    roleA.canLogin();
    roleB.canLogin();
    long originalReadsCount = getRolesReadCount();
    // enure roles are cached
    assertThat(roleA.canLogin()).isTrue();
    assertThat(roleB.canLogin()).isTrue();
    assertThat(originalReadsCount).isEqualTo(getRolesReadCount());
    // invalidate both roles
    ToolRunner.ToolResult tool = ToolRunner.invokeNodetool("invalidaterolescache");
    tool.assertOnCleanExit();
    assertThat(tool.getStdout()).isEmpty();
    // ensure role for roleA is reloaded
    assertThat(roleA.canLogin()).isTrue();
    long readsCountAfterFirstReLoad = getRolesReadCount();
    assertThat(originalReadsCount).isLessThan(readsCountAfterFirstReLoad);
    // ensure role for roleB is reloaded
    assertThat(roleB.canLogin()).isTrue();
    long readsCountAfterSecondReLoad = getRolesReadCount();
    assertThat(readsCountAfterFirstReLoad).isLessThan(readsCountAfterSecondReLoad);
}
Also used : ToolRunner(org.apache.cassandra.tools.ToolRunner) AuthenticatedUser(org.apache.cassandra.auth.AuthenticatedUser) Test(org.junit.Test)

Aggregations

AuthenticatedUser (org.apache.cassandra.auth.AuthenticatedUser)18 ToolRunner (org.apache.cassandra.tools.ToolRunner)8 Test (org.junit.Test)8 IResource (org.apache.cassandra.auth.IResource)3 Permission (org.apache.cassandra.auth.Permission)3 AuthenticationException (org.apache.cassandra.exceptions.AuthenticationException)3 IAuthenticator (org.apache.cassandra.auth.IAuthenticator)2 ResultMessage (org.apache.cassandra.transport.messages.ResultMessage)2 ImmutableSet (com.google.common.collect.ImmutableSet)1 ArrayList (java.util.ArrayList)1 Set (java.util.Set)1 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)1 AuthTestUtils (org.apache.cassandra.auth.AuthTestUtils)1 DataResource (org.apache.cassandra.auth.DataResource)1 DatabaseDescriptor (org.apache.cassandra.config.DatabaseDescriptor)1 CQLStatement (org.apache.cassandra.cql3.CQLStatement)1 QueryOptions (org.apache.cassandra.cql3.QueryOptions)1 InvalidRequestException (org.apache.cassandra.exceptions.InvalidRequestException)1 org.apache.cassandra.schema (org.apache.cassandra.schema)1 KeyspacesDiff (org.apache.cassandra.schema.Keyspaces.KeyspacesDiff)1