Search in sources :

Example 1 with LoginConfiguration

use of com.thinkbiganalytics.auth.jaas.LoginConfiguration in project kylo by Teradata.

the class JaasAuthConfig method jaasConfiguration.

@Bean(name = "jaasConfiguration")
public javax.security.auth.login.Configuration jaasConfiguration(Optional<List<LoginConfiguration>> loginModuleEntries) {
    // Generally the entries will be null only in situations like unit/integration tests.
    if (loginModuleEntries.isPresent()) {
        List<LoginConfiguration> sorted = new ArrayList<>(loginModuleEntries.get());
        sorted.sort(new AnnotationAwareOrderComparator());
        Map<String, AppConfigurationEntry[]> merged = sorted.stream().map(c -> c.getAllApplicationEntries().entrySet()).flatMap(s -> s.stream()).collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue(), ArrayUtils::addAll));
        return new InMemoryConfiguration(merged);
    } else {
        return new InMemoryConfiguration(Collections.emptyMap());
    }
}
Also used : AppConfigurationEntry(javax.security.auth.login.AppConfigurationEntry) LoginConfigurationBuilder(com.thinkbiganalytics.auth.jaas.LoginConfigurationBuilder) LoginConfiguration(com.thinkbiganalytics.auth.jaas.LoginConfiguration) ArrayUtils(org.apache.commons.lang3.ArrayUtils) DefaultJaasAuthenticationProvider(org.springframework.security.authentication.jaas.DefaultJaasAuthenticationProvider) Scope(org.springframework.context.annotation.Scope) ArrayList(java.util.ArrayList) AuthorityGranter(org.springframework.security.authentication.jaas.AuthorityGranter) JaasHttpCallbackHandlerFilter(com.thinkbiganalytics.auth.jaas.http.JaasHttpCallbackHandlerFilter) Map(java.util.Map) UserPrincipalAuthorityGranter(com.thinkbiganalytics.auth.UserPrincipalAuthorityGranter) Named(javax.inject.Named) JaasAuthenticationCallbackHandler(org.springframework.security.authentication.jaas.JaasAuthenticationCallbackHandler) Order(org.springframework.core.annotation.Order) InMemoryConfiguration(org.springframework.security.authentication.jaas.memory.InMemoryConfiguration) UsernameJaasAuthenticationProvider(com.thinkbiganalytics.auth.jaas.UsernameJaasAuthenticationProvider) Collectors(java.util.stream.Collectors) DefaultKyloJaasAuthenticationProvider(com.thinkbiganalytics.auth.jaas.DefaultKyloJaasAuthenticationProvider) Configuration(org.springframework.context.annotation.Configuration) List(java.util.List) DefaultPrincipalAuthorityGranter(com.thinkbiganalytics.auth.DefaultPrincipalAuthorityGranter) Optional(java.util.Optional) Bean(org.springframework.context.annotation.Bean) AbstractJaasAuthenticationProvider(org.springframework.security.authentication.jaas.AbstractJaasAuthenticationProvider) GroupPrincipalAuthorityGranter(com.thinkbiganalytics.auth.GroupPrincipalAuthorityGranter) Collections(java.util.Collections) AnnotationAwareOrderComparator(org.springframework.core.annotation.AnnotationAwareOrderComparator) InMemoryConfiguration(org.springframework.security.authentication.jaas.memory.InMemoryConfiguration) ArrayList(java.util.ArrayList) LoginConfiguration(com.thinkbiganalytics.auth.jaas.LoginConfiguration) AnnotationAwareOrderComparator(org.springframework.core.annotation.AnnotationAwareOrderComparator) Bean(org.springframework.context.annotation.Bean)

Example 2 with LoginConfiguration

use of com.thinkbiganalytics.auth.jaas.LoginConfiguration in project kylo by Teradata.

the class FileAuthConfig method uiFileLoginConfiguration.

@Bean(name = "uiFileLoginConfiguration")
public LoginConfiguration uiFileLoginConfiguration(LoginConfigurationBuilder builder) {
    // @formatter:off
    LoginConfigurationBuilder.ModuleBuilder building = builder.order(this.loginOrder).loginModule(JaasAuthConfig.JAAS_UI).moduleClass(FailFastUsersRolesLoginModule.class).controlFlag(this.loginFlag).option("defaultUsersProperties", "users.default.properties").option("defaultRolesProperties", "groups.default.properties").option("usersProperties", usersResource).option("rolesProperties", groupsResource);
    if (passwordHashEnabled) {
        building.option("hashAlgorithm", hashAlgorithm).option("hashEncoding", hashEncoding);
    }
    LoginConfiguration config = building.add().build();
    testConfiguration(config.getAllApplicationEntries().get(JaasAuthConfig.JAAS_UI)[0]);
    return config;
// @formatter:on
}
Also used : LoginConfiguration(com.thinkbiganalytics.auth.jaas.LoginConfiguration) LoginConfigurationBuilder(com.thinkbiganalytics.auth.jaas.LoginConfigurationBuilder) Bean(org.springframework.context.annotation.Bean)

Example 3 with LoginConfiguration

use of com.thinkbiganalytics.auth.jaas.LoginConfiguration in project kylo by Teradata.

the class FileAuthConfig method servicesFileLoginConfiguration.

@Bean(name = "servicesFileLoginConfiguration")
public LoginConfiguration servicesFileLoginConfiguration(LoginConfigurationBuilder builder) {
    // @formatter:off
    LoginConfigurationBuilder.ModuleBuilder building = builder.order(this.loginOrder).loginModule(JaasAuthConfig.JAAS_SERVICES).moduleClass(FailFastUsersRolesLoginModule.class).controlFlag(this.loginFlag).option("defaultUsersProperties", "users.default.properties").option("defaultRolesProperties", "groups.default.properties").option("usersProperties", usersResource).option("rolesProperties", groupsResource);
    if (passwordHashEnabled) {
        building.option("hashAlgorithm", hashAlgorithm).option("hashEncoding", hashEncoding);
    }
    LoginConfiguration config = building.add().build();
    testConfiguration(config.getAllApplicationEntries().get(JaasAuthConfig.JAAS_SERVICES)[0]);
    return config;
// @formatter:on
}
Also used : LoginConfiguration(com.thinkbiganalytics.auth.jaas.LoginConfiguration) LoginConfigurationBuilder(com.thinkbiganalytics.auth.jaas.LoginConfigurationBuilder) Bean(org.springframework.context.annotation.Bean)

Aggregations

LoginConfiguration (com.thinkbiganalytics.auth.jaas.LoginConfiguration)3 LoginConfigurationBuilder (com.thinkbiganalytics.auth.jaas.LoginConfigurationBuilder)3 Bean (org.springframework.context.annotation.Bean)3 DefaultPrincipalAuthorityGranter (com.thinkbiganalytics.auth.DefaultPrincipalAuthorityGranter)1 GroupPrincipalAuthorityGranter (com.thinkbiganalytics.auth.GroupPrincipalAuthorityGranter)1 UserPrincipalAuthorityGranter (com.thinkbiganalytics.auth.UserPrincipalAuthorityGranter)1 DefaultKyloJaasAuthenticationProvider (com.thinkbiganalytics.auth.jaas.DefaultKyloJaasAuthenticationProvider)1 UsernameJaasAuthenticationProvider (com.thinkbiganalytics.auth.jaas.UsernameJaasAuthenticationProvider)1 JaasHttpCallbackHandlerFilter (com.thinkbiganalytics.auth.jaas.http.JaasHttpCallbackHandlerFilter)1 ArrayList (java.util.ArrayList)1 Collections (java.util.Collections)1 List (java.util.List)1 Map (java.util.Map)1 Optional (java.util.Optional)1 Collectors (java.util.stream.Collectors)1 Named (javax.inject.Named)1 AppConfigurationEntry (javax.security.auth.login.AppConfigurationEntry)1 ArrayUtils (org.apache.commons.lang3.ArrayUtils)1 Configuration (org.springframework.context.annotation.Configuration)1 Scope (org.springframework.context.annotation.Scope)1