Search in sources :

Example 6 with User

use of com.thinkbiganalytics.metadata.api.user.User in project kylo by Teradata.

the class KyloLoginModule method doLogin.

@Override
protected boolean doLogin() throws Exception {
    // Get username and password
    final NameCallback nameCallback = new NameCallback("Username: ");
    final PasswordCallback passwordCallback = new PasswordCallback("Password: ", false);
    if (requirePassword) {
        handle(nameCallback, passwordCallback);
    } else {
        handle(nameCallback);
    }
    // Authenticate user
    metadata.read(() -> {
        Optional<User> user = userProvider.findUserBySystemName(nameCallback.getName());
        if (user.isPresent()) {
            if (!user.get().isEnabled()) {
                throw new AccountLockedException("The account \"" + nameCallback.getName() + "\" is currently disabled");
            } else if (requirePassword && !passwordEncoder.matches(new String(passwordCallback.getPassword()), user.get().getPassword())) {
                throw new CredentialException("The username and/or password combination do not match");
            }
            addPrincipal(user.get().getPrincipal());
            addAllPrincipals(user.get().getAllGroupPrincipals());
        } else {
            throw new AccountNotFoundException("No account exists with name name \"" + nameCallback.getName() + "\"");
        }
    }, MetadataAccess.SERVICE);
    return true;
}
Also used : AccountLockedException(javax.security.auth.login.AccountLockedException) NameCallback(javax.security.auth.callback.NameCallback) User(com.thinkbiganalytics.metadata.api.user.User) CredentialException(javax.security.auth.login.CredentialException) PasswordCallback(javax.security.auth.callback.PasswordCallback) AccountNotFoundException(javax.security.auth.login.AccountNotFoundException)

Example 7 with User

use of com.thinkbiganalytics.metadata.api.user.User in project kylo by Teradata.

the class JcrUserProviderTest method testUserGetContainingGroups.

@Test(dependsOnMethods = "testAddUsersMembers")
public void testUserGetContainingGroups() {
    metadata.read(() -> {
        User user1 = this.provider.findUserBySystemName("user1").get();
        User user2 = this.provider.findUserBySystemName("user2").get();
        User user3 = this.provider.findUserBySystemName("user3").get();
        assertThat(user1.getContainingGroups()).hasSize(1).extracting(g -> g.getSystemName()).contains("groupA");
        assertThat(user2.getContainingGroups()).hasSize(1).extracting(g -> g.getSystemName()).contains("groupB");
        assertThat(user3.getContainingGroups()).hasSize(1).extracting(g -> g.getSystemName()).contains("groupD");
    });
}
Also used : ModeShapeEngineConfig(com.thinkbiganalytics.metadata.modeshape.ModeShapeEngineConfig) UsernamePrincipal(com.thinkbiganalytics.security.UsernamePrincipal) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Test(org.testng.annotations.Test) User(com.thinkbiganalytics.metadata.api.user.User) GroupPrincipal(com.thinkbiganalytics.security.GroupPrincipal) Collectors(java.util.stream.Collectors) Inject(javax.inject.Inject) List(java.util.List) SpringApplicationConfiguration(org.springframework.boot.test.SpringApplicationConfiguration) UserGroup(com.thinkbiganalytics.metadata.api.user.UserGroup) JcrTestConfig(com.thinkbiganalytics.metadata.modeshape.JcrTestConfig) Optional(java.util.Optional) StreamSupport(java.util.stream.StreamSupport) UserProvider(com.thinkbiganalytics.metadata.api.user.UserProvider) MetadataAccess(com.thinkbiganalytics.metadata.api.MetadataAccess) JcrMetadataAccess(com.thinkbiganalytics.metadata.modeshape.JcrMetadataAccess) AbstractTestNGSpringContextTests(org.springframework.test.context.testng.AbstractTestNGSpringContextTests) User(com.thinkbiganalytics.metadata.api.user.User) Test(org.testng.annotations.Test)

Example 8 with User

use of com.thinkbiganalytics.metadata.api.user.User in project kylo by Teradata.

the class JcrUserProviderTest method testUserGetAllContainingGroups.

@Test(dependsOnMethods = "testAddUsersMembers")
public void testUserGetAllContainingGroups() {
    metadata.read(() -> {
        User user1 = this.provider.findUserBySystemName("user1").get();
        User user2 = this.provider.findUserBySystemName("user2").get();
        User user3 = this.provider.findUserBySystemName("user3").get();
        assertThat(user1.getAllContainingGroups()).hasSize(1).extracting(g -> g.getSystemName()).contains("groupA");
        assertThat(user2.getAllContainingGroups()).hasSize(2).extracting(g -> g.getSystemName()).contains("groupB", "groupA");
        assertThat(user3.getAllContainingGroups()).hasSize(3).extracting(g -> g.getSystemName()).contains("groupD", "groupC", "groupA");
    });
}
Also used : ModeShapeEngineConfig(com.thinkbiganalytics.metadata.modeshape.ModeShapeEngineConfig) UsernamePrincipal(com.thinkbiganalytics.security.UsernamePrincipal) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) Test(org.testng.annotations.Test) User(com.thinkbiganalytics.metadata.api.user.User) GroupPrincipal(com.thinkbiganalytics.security.GroupPrincipal) Collectors(java.util.stream.Collectors) Inject(javax.inject.Inject) List(java.util.List) SpringApplicationConfiguration(org.springframework.boot.test.SpringApplicationConfiguration) UserGroup(com.thinkbiganalytics.metadata.api.user.UserGroup) JcrTestConfig(com.thinkbiganalytics.metadata.modeshape.JcrTestConfig) Optional(java.util.Optional) StreamSupport(java.util.stream.StreamSupport) UserProvider(com.thinkbiganalytics.metadata.api.user.UserProvider) MetadataAccess(com.thinkbiganalytics.metadata.api.MetadataAccess) JcrMetadataAccess(com.thinkbiganalytics.metadata.modeshape.JcrMetadataAccess) AbstractTestNGSpringContextTests(org.springframework.test.context.testng.AbstractTestNGSpringContextTests) User(com.thinkbiganalytics.metadata.api.user.User) Test(org.testng.annotations.Test)

Example 9 with User

use of com.thinkbiganalytics.metadata.api.user.User in project kylo by Teradata.

the class JcrUserProviderTest method testUserGetGroupPrincipals.

@Test(dependsOnMethods = "testAddUsersMembers")
public void testUserGetGroupPrincipals() {
    metadata.read(() -> {
        User user1 = this.provider.findUserBySystemName("user1").get();
        User user2 = this.provider.findUserBySystemName("user2").get();
        User user3 = this.provider.findUserBySystemName("user3").get();
        assertThat(user1.getAllGroupPrincipals()).hasSize(1).contains(new GroupPrincipal("groupA"));
        assertThat(user2.getAllGroupPrincipals()).hasSize(2).contains(new GroupPrincipal("groupA"), new GroupPrincipal("groupB"));
        assertThat(user3.getAllGroupPrincipals()).hasSize(3).contains(new GroupPrincipal("groupA"), new GroupPrincipal("groupC"), new GroupPrincipal("groupD"));
    });
}
Also used : User(com.thinkbiganalytics.metadata.api.user.User) GroupPrincipal(com.thinkbiganalytics.security.GroupPrincipal) Test(org.testng.annotations.Test)

Example 10 with User

use of com.thinkbiganalytics.metadata.api.user.User in project kylo by Teradata.

the class CreateDefaultUsersGroupsAction method createDefaultUser.

protected User createDefaultUser(String username, String displayName, String password) {
    Optional<User> userOption = userProvider.findUserBySystemName(username);
    User user = null;
    // Create the user if it doesn't exists.
    if (userOption.isPresent()) {
        user = userOption.get();
    } else {
        user = userProvider.ensureUser(username);
        if (password != null) {
            user.setPassword(passwordEncoder.encode(password));
        }
        user.setDisplayName(displayName);
    }
    return user;
}
Also used : User(com.thinkbiganalytics.metadata.api.user.User)

Aggregations

User (com.thinkbiganalytics.metadata.api.user.User)11 Test (org.testng.annotations.Test)7 UserGroup (com.thinkbiganalytics.metadata.api.user.UserGroup)4 GroupPrincipal (com.thinkbiganalytics.security.GroupPrincipal)3 UsernamePrincipal (com.thinkbiganalytics.security.UsernamePrincipal)3 MetadataAccess (com.thinkbiganalytics.metadata.api.MetadataAccess)2 UserProvider (com.thinkbiganalytics.metadata.api.user.UserProvider)2 JcrMetadataAccess (com.thinkbiganalytics.metadata.modeshape.JcrMetadataAccess)2 JcrTestConfig (com.thinkbiganalytics.metadata.modeshape.JcrTestConfig)2 ModeShapeEngineConfig (com.thinkbiganalytics.metadata.modeshape.ModeShapeEngineConfig)2 List (java.util.List)2 Optional (java.util.Optional)2 Collectors (java.util.stream.Collectors)2 StreamSupport (java.util.stream.StreamSupport)2 Inject (javax.inject.Inject)2 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)2 SpringApplicationConfiguration (org.springframework.boot.test.SpringApplicationConfiguration)2 AbstractTestNGSpringContextTests (org.springframework.test.context.testng.AbstractTestNGSpringContextTests)2 UpgradeException (com.thinkbiganalytics.server.upgrade.UpgradeException)1 RepositoryException (javax.jcr.RepositoryException)1