Search in sources :

Example 1 with ConfigSource

use of org.skife.config.ConfigSource in project killbill by killbill.

the class KillBillShiroWebModule method configureShiroWeb.

@Override
protected void configureShiroWeb() {
    final RedisCacheConfig redisCacheConfig = new ConfigurationObjectFactory(new ConfigSource() {

        @Override
        public String getString(final String propertyName) {
            return configSource.getString(propertyName);
        }
    }).build(RedisCacheConfig.class);
    // Magic provider to configure the cache manager
    if (redisCacheConfig.isRedisCachingEnabled()) {
        bind(CacheManager.class).toProvider(RedisShiroManagerProvider.class).asEagerSingleton();
    } else {
        bind(CacheManager.class).toProvider(EhcacheShiroManagerProvider.class).asEagerSingleton();
    }
    final SecurityConfig securityConfig = new ConfigurationObjectFactory(configSource).build(SecurityConfig.class);
    final Collection<Realm> realms = defaultSecurityManager.getRealms() != null ? defaultSecurityManager.getRealms() : // Mainly for testing
    ImmutableSet.<Realm>of(new IniRealm(securityConfig.getShiroResourcePath()));
    for (final Realm realm : realms) {
        bindRealm().toInstance(realm);
    }
    configureShiroForRBAC();
    configureShiroForTenants();
    expose(new TypeLiteral<Set<Realm>>() {
    });
}
Also used : ConfigSource(org.skife.config.ConfigSource) RedisShiroManagerProvider(org.killbill.billing.util.glue.RedisShiroManagerProvider) ImmutableSet(com.google.common.collect.ImmutableSet) Set(java.util.Set) SecurityConfig(org.killbill.billing.util.config.definition.SecurityConfig) RedisCacheConfig(org.killbill.billing.util.config.definition.RedisCacheConfig) ConfigurationObjectFactory(org.skife.config.ConfigurationObjectFactory) IniRealm(org.apache.shiro.realm.text.IniRealm) EhcacheShiroManagerProvider(org.killbill.billing.util.glue.EhcacheShiroManagerProvider) IniRealm(org.apache.shiro.realm.text.IniRealm) KillbillJdbcTenantRealm(org.killbill.billing.server.security.KillbillJdbcTenantRealm) Realm(org.apache.shiro.realm.Realm) KillBillAuth0Realm(org.killbill.billing.util.security.shiro.realm.KillBillAuth0Realm) KillBillJdbcRealm(org.killbill.billing.util.security.shiro.realm.KillBillJdbcRealm) KillBillJndiLdapRealm(org.killbill.billing.util.security.shiro.realm.KillBillJndiLdapRealm) KillBillOktaRealm(org.killbill.billing.util.security.shiro.realm.KillBillOktaRealm)

Example 2 with ConfigSource

use of org.skife.config.ConfigSource in project killbill by killbill.

the class KillBillShiroModule method bindSecurityManager.

@Override
protected void bindSecurityManager(final AnnotatedBindingBuilder<? super SecurityManager> bind) {
    // super.bindSecurityManager(bind);
    bind.toInstance(defaultSecurityManager);
    final RedisCacheConfig redisCacheConfig = new ConfigurationObjectFactory(new ConfigSource() {

        @Override
        public String getString(final String propertyName) {
            return configSource.getString(propertyName);
        }
    }).build(RedisCacheConfig.class);
    // Magic provider to configure the cache manager
    if (redisCacheConfig.isRedisCachingEnabled()) {
        bind(CacheManager.class).toProvider(RedisShiroManagerProvider.class).asEagerSingleton();
    } else {
        bind(CacheManager.class).toProvider(EhcacheShiroManagerProvider.class).asEagerSingleton();
    }
}
Also used : KillbillConfigSource(org.killbill.billing.platform.api.KillbillConfigSource) ConfigSource(org.skife.config.ConfigSource) RedisCacheConfig(org.killbill.billing.util.config.definition.RedisCacheConfig) ConfigurationObjectFactory(org.skife.config.ConfigurationObjectFactory)

Example 3 with ConfigSource

use of org.skife.config.ConfigSource in project killbill by killbill.

the class TestKillBillJndiLdapRealm method testCheckLDAPConnection.

@Test(groups = "external", enabled = false)
public void testCheckLDAPConnection() throws Exception {
    // Convenience method to verify your LDAP connectivity
    final Properties props = new Properties();
    props.setProperty("org.killbill.security.ldap.userDnTemplate", "uid={0},ou=users,dc=mycompany,dc=com");
    props.setProperty("org.killbill.security.ldap.searchBase", "ou=groups,dc=mycompany,dc=com");
    props.setProperty("org.killbill.security.ldap.groupSearchFilter", "memberOf=uid={0},ou=users,dc=mycompany,dc=com");
    props.setProperty("org.killbill.security.ldap.groupNameId", "cn");
    props.setProperty("org.killbill.security.ldap.url", "ldap://ldap:389");
    props.setProperty("org.killbill.security.ldap.disableSSLCheck", "true");
    props.setProperty("org.killbill.security.ldap.systemUsername", "cn=root");
    props.setProperty("org.killbill.security.ldap.systemPassword", "password");
    props.setProperty("org.killbill.security.ldap.authenticationMechanism", "simple");
    props.setProperty("org.killbill.security.ldap.permissionsByGroup", "support-group: entitlement:*\n" + "finance-group: invoice:*, payment:*\n" + "ops-group: *:*");
    final ConfigSource customConfigSource = new SimplePropertyConfigSource(props);
    final SecurityConfig securityConfig = new ConfigurationObjectFactory(customConfigSource).build(SecurityConfig.class);
    final KillBillJndiLdapRealm ldapRealm = new KillBillJndiLdapRealm(securityConfig);
    final String username = "pierre";
    final String password = "password";
    // Check authentication
    final UsernamePasswordToken token = new UsernamePasswordToken(username, password);
    final AuthenticationInfo authenticationInfo = ldapRealm.getAuthenticationInfo(token);
    System.out.println(authenticationInfo);
    // Check permissions
    final SimplePrincipalCollection principals = new SimplePrincipalCollection(username, username);
    final AuthorizationInfo authorizationInfo = ldapRealm.queryForAuthorizationInfo(principals, ldapRealm.getContextFactory());
    System.out.println("Roles: " + authorizationInfo.getRoles());
    System.out.println("Permissions: " + authorizationInfo.getStringPermissions());
}
Also used : SimplePropertyConfigSource(org.skife.config.SimplePropertyConfigSource) ConfigSource(org.skife.config.ConfigSource) SimplePropertyConfigSource(org.skife.config.SimplePropertyConfigSource) SecurityConfig(org.killbill.billing.util.config.definition.SecurityConfig) ConfigurationObjectFactory(org.skife.config.ConfigurationObjectFactory) SimplePrincipalCollection(org.apache.shiro.subject.SimplePrincipalCollection) Properties(java.util.Properties) AuthorizationInfo(org.apache.shiro.authz.AuthorizationInfo) AuthenticationInfo(org.apache.shiro.authc.AuthenticationInfo) UsernamePasswordToken(org.apache.shiro.authc.UsernamePasswordToken) Test(org.testng.annotations.Test)

Example 4 with ConfigSource

use of org.skife.config.ConfigSource in project killbill by killbill.

the class TestKillBillOktaRealm method testCheckOktaConnection.

@Test(groups = "external", enabled = false)
public void testCheckOktaConnection() throws Exception {
    // Convenience method to verify your Okta connectivity
    final Properties props = new Properties();
    props.setProperty("org.killbill.security.okta.url", "https://dev-XXXXXX.oktapreview.com");
    props.setProperty("org.killbill.security.okta.apiToken", "YYYYYY");
    props.setProperty("org.killbill.security.okta.permissionsByGroup", "support-group: entitlement:*\n" + "finance-group: invoice:*, payment:*\n" + "ops-group: *:*");
    final ConfigSource customConfigSource = new SimplePropertyConfigSource(props);
    final SecurityConfig securityConfig = new ConfigurationObjectFactory(customConfigSource).build(SecurityConfig.class);
    final KillBillOktaRealm oktaRealm = new KillBillOktaRealm(securityConfig);
    final String username = "pierre";
    final String password = "password";
    // Check authentication
    final UsernamePasswordToken token = new UsernamePasswordToken(username, password);
    final AuthenticationInfo authenticationInfo = oktaRealm.getAuthenticationInfo(token);
    System.out.println(authenticationInfo);
    // Check permissions
    final SimplePrincipalCollection principals = new SimplePrincipalCollection(username, username);
    final AuthorizationInfo authorizationInfo = oktaRealm.doGetAuthorizationInfo(principals);
    System.out.println("Roles: " + authorizationInfo.getRoles());
    System.out.println("Permissions: " + authorizationInfo.getStringPermissions());
}
Also used : SimplePropertyConfigSource(org.skife.config.SimplePropertyConfigSource) ConfigSource(org.skife.config.ConfigSource) SimplePropertyConfigSource(org.skife.config.SimplePropertyConfigSource) SecurityConfig(org.killbill.billing.util.config.definition.SecurityConfig) ConfigurationObjectFactory(org.skife.config.ConfigurationObjectFactory) SimplePrincipalCollection(org.apache.shiro.subject.SimplePrincipalCollection) Properties(java.util.Properties) AuthorizationInfo(org.apache.shiro.authz.AuthorizationInfo) AuthenticationInfo(org.apache.shiro.authc.AuthenticationInfo) UsernamePasswordToken(org.apache.shiro.authc.UsernamePasswordToken) Test(org.testng.annotations.Test)

Example 5 with ConfigSource

use of org.skife.config.ConfigSource in project killbill by killbill.

the class GuicyKillbillTestSuite method globalBeforeTest.

@BeforeClass(alwaysRun = true)
public void globalBeforeTest() {
    configSource = getConfigSource(extraPropertiesForTestSuite);
    skifeConfigSource = new ConfigSource() {

        @Override
        public String getString(final String propertyName) {
            return configSource.getString(propertyName);
        }
    };
    // We need to set the instance variable in each subsequent class instantiated in the suite
    clock = Mockito.mock(ClockMock.class, new Answer() {

        @Override
        public Object answer(final InvocationOnMock invocation) throws Throwable {
            final Object answer = invocation.getMethod().invoke(theRealClock, invocation.getArguments());
            final DateTime utcNow = theRealClock.getUTCNow();
            if (callContext != null) {
                callContext.setCreatedDate(utcNow);
            }
            if (internalCallContext != null) {
                internalCallContext.setCreatedDate(utcNow);
                internalCallContext.setUpdatedDate(utcNow);
            }
            return answer;
        }
    });
}
Also used : TestKillbillConfigSource(org.killbill.billing.platform.test.config.TestKillbillConfigSource) KillbillConfigSource(org.killbill.billing.platform.api.KillbillConfigSource) ConfigSource(org.skife.config.ConfigSource) Answer(org.mockito.stubbing.Answer) InvocationOnMock(org.mockito.invocation.InvocationOnMock) ClockMock(org.killbill.clock.ClockMock) DistributedClockMock(org.killbill.clock.DistributedClockMock) DateTime(org.joda.time.DateTime) BeforeClass(org.testng.annotations.BeforeClass)

Aggregations

ConfigSource (org.skife.config.ConfigSource)8 ConfigurationObjectFactory (org.skife.config.ConfigurationObjectFactory)7 SecurityConfig (org.killbill.billing.util.config.definition.SecurityConfig)5 KillbillConfigSource (org.killbill.billing.platform.api.KillbillConfigSource)4 Properties (java.util.Properties)3 AuthenticationInfo (org.apache.shiro.authc.AuthenticationInfo)3 UsernamePasswordToken (org.apache.shiro.authc.UsernamePasswordToken)3 AuthorizationInfo (org.apache.shiro.authz.AuthorizationInfo)3 SimplePrincipalCollection (org.apache.shiro.subject.SimplePrincipalCollection)3 SimplePropertyConfigSource (org.skife.config.SimplePropertyConfigSource)3 Test (org.testng.annotations.Test)3 ImmutableSet (com.google.common.collect.ImmutableSet)2 Set (java.util.Set)2 Realm (org.apache.shiro.realm.Realm)2 IniRealm (org.apache.shiro.realm.text.IniRealm)2 RedisCacheConfig (org.killbill.billing.util.config.definition.RedisCacheConfig)2 KillBillAuth0Realm (org.killbill.billing.util.security.shiro.realm.KillBillAuth0Realm)2 KillBillJdbcRealm (org.killbill.billing.util.security.shiro.realm.KillBillJdbcRealm)2 KillBillJndiLdapRealm (org.killbill.billing.util.security.shiro.realm.KillBillJndiLdapRealm)2 KillBillOktaRealm (org.killbill.billing.util.security.shiro.realm.KillBillOktaRealm)2