use of org.neo4j.server.security.auth.InMemoryUserRepository in project neo4j by neo4j.
the class InternalFlatFileRealmTest method shouldAssignAdminRoleAfterBadSetting.
@Test
public void shouldAssignAdminRoleAfterBadSetting() throws Throwable {
UserRepository userRepository = new InMemoryUserRepository();
UserRepository initialUserRepository = new InMemoryUserRepository();
UserRepository adminUserRepository = new InMemoryUserRepository();
RoleRepository roleRepository = new InMemoryRoleRepository();
userRepository.create(newUser("morpheus", "123", false));
userRepository.create(newUser("trinity", "123", false));
InternalFlatFileRealm realm = new InternalFlatFileRealm(userRepository, roleRepository, new BasicPasswordPolicy(), new RateLimitedAuthenticationStrategy(Clocks.systemClock(), 3), new InternalFlatFileRealmIT.TestJobScheduler(), initialUserRepository, adminUserRepository);
try {
realm.initialize();
realm.start();
fail("Multiple users, no default admin provided");
} catch (InvalidArgumentsException e) {
realm.stop();
realm.shutdown();
}
adminUserRepository.create(new User.Builder("trinity", Credential.INACCESSIBLE).build());
realm.initialize();
realm.start();
assertThat(realm.getUsernamesForRole(PredefinedRoles.ADMIN).size(), equalTo(1));
assertThat(realm.getUsernamesForRole(PredefinedRoles.ADMIN), contains("trinity"));
}
use of org.neo4j.server.security.auth.InMemoryUserRepository in project neo4j by neo4j.
the class InternalFlatFileRealmTest method internalTestRealmWithUsers.
private InternalFlatFileRealm internalTestRealmWithUsers(List<String> existing, List<String> defaultAdmin) throws Throwable {
UserRepository userRepository = new InMemoryUserRepository();
UserRepository initialUserRepository = new InMemoryUserRepository();
UserRepository adminUserRepository = new InMemoryUserRepository();
RoleRepository roleRepository = new InMemoryRoleRepository();
for (String user : existing) {
userRepository.create(newUser(user, "123", false));
}
for (String user : defaultAdmin) {
adminUserRepository.create(new User.Builder(user, Credential.INACCESSIBLE).build());
}
return new InternalFlatFileRealm(userRepository, roleRepository, new BasicPasswordPolicy(), new RateLimitedAuthenticationStrategy(Clocks.systemClock(), 3), new InternalFlatFileRealmIT.TestJobScheduler(), initialUserRepository, adminUserRepository);
}
use of org.neo4j.server.security.auth.InMemoryUserRepository in project neo4j by neo4j.
the class MultiRealmAuthManagerRule method setupAuthManager.
private void setupAuthManager(AuthenticationStrategy authStrategy) throws Throwable {
FormattedLog.Builder builder = FormattedLog.withUTCTimeZone();
securityLogWriter = new StringWriter();
Log log = builder.toWriter(securityLogWriter);
securityLog = new SecurityLog(log);
InternalFlatFileRealm internalFlatFileRealm = new InternalFlatFileRealm(users, new InMemoryRoleRepository(), new BasicPasswordPolicy(), authStrategy, mock(JobScheduler.class), new InMemoryUserRepository(), new InMemoryUserRepository());
manager = new MultiRealmAuthManager(internalFlatFileRealm, Collections.singleton(internalFlatFileRealm), new MemoryConstrainedCacheManager(), securityLog, true);
manager.init();
}
use of org.neo4j.server.security.auth.InMemoryUserRepository in project neo4j by neo4j.
the class UserServiceTest method setupAuthManagerAndSubject.
protected void setupAuthManagerAndSubject() {
BasicAuthManager basicAuthManager = new BasicAuthManager(userRepository, passwordPolicy, mock(AuthenticationStrategy.class), new InMemoryUserRepository());
userManagerSupplier = basicAuthManager;
neo4jContext = new BasicSecurityContext(basicAuthManager, NEO4J_USER, AuthenticationResult.SUCCESS);
}
use of org.neo4j.server.security.auth.InMemoryUserRepository in project neo4j by neo4j.
the class UserSecurityGraphComponentTest method setup.
@BeforeAll
static void setup() throws IOException, InvalidArgumentsException {
Config cfg = Config.newBuilder().set(auth_enabled, TRUE).set(allow_single_automatic_upgrade, FALSE).build();
dbms = new TestDatabaseManagementServiceBuilder(directory.homePath()).impermanent().setConfig(cfg).noOpSystemGraphInitializer().build();
system = (GraphDatabaseFacade) dbms.database(SYSTEM_DATABASE_NAME);
DependencyResolver resolver = system.getDependencyResolver();
systemGraphComponents = resolver.resolveDependency(SystemGraphComponents.class);
authManager = resolver.resolveDependency(AuthManager.class);
// Insert a custom SecurityUserComponent instead of the default one,
// in order to have a handle on it and to migrate a 3.5 user
systemGraphComponents.deregister(SECURITY_USER_COMPONENT);
UserRepository oldUsers = new InMemoryUserRepository();
User oldUser = new User.Builder("alice", credentialFor("secret")).withRequiredPasswordChange(false).build();
oldUsers.create(oldUser);
UserRepository initialPassword = new InMemoryUserRepository();
userSecurityGraphComponent = new UserSecurityGraphComponent(CommunitySecurityLog.NULL_LOG, oldUsers, initialPassword, Config.defaults());
systemGraphComponents.register(userSecurityGraphComponent);
// remove DBMS runtime component as it is not a subject of this test
systemGraphComponents.deregister(DBMS_RUNTIME_COMPONENT);
}
Aggregations