Search in sources :

Example 16 with SecurityConfiguration

use of org.apache.jackrabbit.oak.spi.security.SecurityConfiguration in project jackrabbit-oak by apache.

the class ContentRepositoryImpl method createDescriptors.

@SuppressWarnings("deprecation")
@Nonnull
protected GenericDescriptors createDescriptors() {
    final ValueFactory valueFactory = new SimpleValueFactory();
    final Value trueValue = valueFactory.createValue(true);
    final Value falseValue = valueFactory.createValue(false);
    GenericDescriptors gd = new GenericDescriptors(baseDescriptors).put(IDENTIFIER_STABILITY, valueFactory.createValue(Repository.IDENTIFIER_STABILITY_METHOD_DURATION), true, true).put(LEVEL_1_SUPPORTED, trueValue, true, true).put(LEVEL_2_SUPPORTED, trueValue, true, true).put(OPTION_NODE_TYPE_MANAGEMENT_SUPPORTED, trueValue, true, true).put(NODE_TYPE_MANAGEMENT_AUTOCREATED_DEFINITIONS_SUPPORTED, trueValue, true, true).put(NODE_TYPE_MANAGEMENT_INHERITANCE, valueFactory.createValue(NODE_TYPE_MANAGEMENT_INHERITANCE_SINGLE), true, true).put(NODE_TYPE_MANAGEMENT_MULTIPLE_BINARY_PROPERTIES_SUPPORTED, trueValue, true, true).put(NODE_TYPE_MANAGEMENT_MULTIVALUED_PROPERTIES_SUPPORTED, trueValue, true, true).put(NODE_TYPE_MANAGEMENT_ORDERABLE_CHILD_NODES_SUPPORTED, trueValue, true, true).put(NODE_TYPE_MANAGEMENT_OVERRIDES_SUPPORTED, trueValue, true, true).put(NODE_TYPE_MANAGEMENT_PRIMARY_ITEM_NAME_SUPPORTED, trueValue, true, true).put(NODE_TYPE_MANAGEMENT_PROPERTY_TYPES, new Value[] { valueFactory.createValue(PropertyType.TYPENAME_STRING), valueFactory.createValue(PropertyType.TYPENAME_BINARY), valueFactory.createValue(PropertyType.TYPENAME_LONG), valueFactory.createValue(PropertyType.TYPENAME_LONG), valueFactory.createValue(PropertyType.TYPENAME_DOUBLE), valueFactory.createValue(PropertyType.TYPENAME_DECIMAL), valueFactory.createValue(PropertyType.TYPENAME_DATE), valueFactory.createValue(PropertyType.TYPENAME_BOOLEAN), valueFactory.createValue(PropertyType.TYPENAME_NAME), valueFactory.createValue(PropertyType.TYPENAME_PATH), valueFactory.createValue(PropertyType.TYPENAME_REFERENCE), valueFactory.createValue(PropertyType.TYPENAME_WEAKREFERENCE), valueFactory.createValue(PropertyType.TYPENAME_URI), valueFactory.createValue(PropertyType.TYPENAME_UNDEFINED) }, false, true).put(NODE_TYPE_MANAGEMENT_RESIDUAL_DEFINITIONS_SUPPORTED, trueValue, true, true).put(NODE_TYPE_MANAGEMENT_SAME_NAME_SIBLINGS_SUPPORTED, falseValue, true, true).put(NODE_TYPE_MANAGEMENT_VALUE_CONSTRAINTS_SUPPORTED, trueValue, true, true).put(NODE_TYPE_MANAGEMENT_UPDATE_IN_USE_SUPORTED, falseValue, true, true).put(OPTION_ACCESS_CONTROL_SUPPORTED, trueValue, true, true).put(OPTION_JOURNALED_OBSERVATION_SUPPORTED, falseValue, true, true).put(OPTION_LIFECYCLE_SUPPORTED, falseValue, true, true).put(OPTION_LOCKING_SUPPORTED, falseValue, true, true).put(OPTION_OBSERVATION_SUPPORTED, trueValue, true, true).put(OPTION_NODE_AND_PROPERTY_WITH_SAME_NAME_SUPPORTED, trueValue, true, true).put(OPTION_QUERY_SQL_SUPPORTED, falseValue, true, true).put(OPTION_RETENTION_SUPPORTED, falseValue, true, true).put(OPTION_SHAREABLE_NODES_SUPPORTED, falseValue, true, true).put(OPTION_SIMPLE_VERSIONING_SUPPORTED, falseValue, true, true).put(OPTION_TRANSACTIONS_SUPPORTED, falseValue, true, true).put(OPTION_UNFILED_CONTENT_SUPPORTED, falseValue, true, true).put(OPTION_UPDATE_MIXIN_NODE_TYPES_SUPPORTED, trueValue, true, true).put(OPTION_UPDATE_PRIMARY_NODE_TYPE_SUPPORTED, trueValue, true, true).put(OPTION_VERSIONING_SUPPORTED, trueValue, true, true).put(OPTION_WORKSPACE_MANAGEMENT_SUPPORTED, falseValue, true, true).put(OPTION_XML_EXPORT_SUPPORTED, falseValue, true, true).put(OPTION_XML_IMPORT_SUPPORTED, falseValue, true, true).put(OPTION_ACTIVITIES_SUPPORTED, falseValue, true, true).put(OPTION_BASELINES_SUPPORTED, falseValue, true, true).put(QUERY_FULL_TEXT_SEARCH_SUPPORTED, falseValue, true, true).put(QUERY_JOINS, valueFactory.createValue(QUERY_JOINS_NONE), true, true).put(QUERY_LANGUAGES, new Value[0], false, true).put(QUERY_STORED_QUERIES_SUPPORTED, falseValue, true, true).put(QUERY_XPATH_DOC_ORDER, falseValue, true, true).put(QUERY_XPATH_POS_INDEX, falseValue, true, true).put(REP_NAME_DESC, valueFactory.createValue("Apache Jackrabbit Oak"), true, true).put(REP_VERSION_DESC, valueFactory.createValue(OakVersion.getVersion()), true, true).put(REP_VENDOR_DESC, valueFactory.createValue("The Apache Software Foundation"), true, true).put(REP_VENDOR_URL_DESC, valueFactory.createValue("http://www.apache.org/"), true, true).put(SPEC_NAME_DESC, valueFactory.createValue("Content Repository for Java Technology API"), true, true).put(SPEC_VERSION_DESC, valueFactory.createValue("2.0"), true, true).put(WRITE_SUPPORTED, trueValue, true, true);
    // jackrabbit API specific descriptors
    gd.put(JackrabbitRepository.OPTION_USER_MANAGEMENT_SUPPORTED, falseValue, true, false);
    gd.put(JackrabbitRepository.OPTION_PRINCIPAL_MANAGEMENT_SUPPORTED, falseValue, true, false);
    gd.put(JackrabbitRepository.OPTION_PRIVILEGE_MANAGEMENT_SUPPORTED, falseValue, true, false);
    for (SecurityConfiguration sc : securityProvider.getConfigurations()) {
        String name = sc.getName();
        if (UserConfiguration.NAME.equals(name)) {
            gd.put(JackrabbitRepository.OPTION_USER_MANAGEMENT_SUPPORTED, trueValue, true, false);
        } else if (PrincipalConfiguration.NAME.equals(name)) {
            gd.put(JackrabbitRepository.OPTION_PRINCIPAL_MANAGEMENT_SUPPORTED, trueValue, true, false);
        } else if (PrivilegeConfiguration.NAME.equals(name)) {
            gd.put(JackrabbitRepository.OPTION_PRIVILEGE_MANAGEMENT_SUPPORTED, trueValue, true, false);
        }
    }
    return gd;
}
Also used : GenericDescriptors(org.apache.jackrabbit.oak.spi.descriptors.GenericDescriptors) Value(javax.jcr.Value) ValueFactory(javax.jcr.ValueFactory) SimpleValueFactory(org.apache.jackrabbit.commons.SimpleValueFactory) SecurityConfiguration(org.apache.jackrabbit.oak.spi.security.SecurityConfiguration) SimpleValueFactory(org.apache.jackrabbit.commons.SimpleValueFactory) Nonnull(javax.annotation.Nonnull)

Example 17 with SecurityConfiguration

use of org.apache.jackrabbit.oak.spi.security.SecurityConfiguration in project jackrabbit-oak by apache.

the class ConfigurationInitializer method initializeConfigurations.

static void initializeConfigurations(@Nonnull SecurityProvider securityProvider, @Nonnull CompositeConfiguration configuration, @Nonnull ConfigurationParameters parameters) {
    configuration.setSecurityProvider(securityProvider);
    List<? extends SecurityConfiguration> configs = configuration.getConfigurations();
    for (SecurityConfiguration config : configs) {
        initializeConfiguration(securityProvider, config, parameters);
    }
}
Also used : SecurityConfiguration(org.apache.jackrabbit.oak.spi.security.SecurityConfiguration)

Example 18 with SecurityConfiguration

use of org.apache.jackrabbit.oak.spi.security.SecurityConfiguration in project jackrabbit-oak by apache.

the class SecurityProviderImplTest method testUnBindAuthenticationConfiguration.

@Test
public void testUnBindAuthenticationConfiguration() {
    AuthenticationConfiguration ac = Mockito.mock(AuthenticationConfiguration.class);
    securityProvider.bindAuthenticationConfiguration(ac);
    securityProvider.unbindAuthenticationConfiguration(ac);
    assertNull(securityProvider.getConfiguration(AuthenticationConfiguration.class));
    for (SecurityConfiguration sc : securityProvider.getConfigurations()) {
        if (sc instanceof AuthenticationConfiguration) {
            fail();
        }
    }
}
Also used : AuthenticationConfiguration(org.apache.jackrabbit.oak.spi.security.authentication.AuthenticationConfiguration) SecurityConfiguration(org.apache.jackrabbit.oak.spi.security.SecurityConfiguration) Test(org.junit.Test)

Example 19 with SecurityConfiguration

use of org.apache.jackrabbit.oak.spi.security.SecurityConfiguration in project jackrabbit-oak by apache.

the class SecurityProviderImplTest method testBindAuthenticationConfiguration.

@Test
public void testBindAuthenticationConfiguration() {
    AuthenticationConfiguration ac = Mockito.mock(AuthenticationConfiguration.class);
    securityProvider.bindAuthenticationConfiguration(ac);
    assertSame(ac, securityProvider.getConfiguration(AuthenticationConfiguration.class));
    for (SecurityConfiguration sc : securityProvider.getConfigurations()) {
        if (sc instanceof AuthenticationConfiguration) {
            assertSame(ac, sc);
        }
    }
}
Also used : AuthenticationConfiguration(org.apache.jackrabbit.oak.spi.security.authentication.AuthenticationConfiguration) SecurityConfiguration(org.apache.jackrabbit.oak.spi.security.SecurityConfiguration) Test(org.junit.Test)

Example 20 with SecurityConfiguration

use of org.apache.jackrabbit.oak.spi.security.SecurityConfiguration in project jackrabbit-oak by apache.

the class SecurityProviderImplTest method testUnBindUserConfiguration.

@Test
public void testUnBindUserConfiguration() {
    UserConfiguration uc = Mockito.mock(UserConfiguration.class);
    securityProvider.bindUserConfiguration(uc);
    securityProvider.unbindUserConfiguration(uc);
    assertNull(securityProvider.getConfiguration(UserConfiguration.class));
    for (SecurityConfiguration sc : securityProvider.getConfigurations()) {
        if (sc instanceof UserConfiguration) {
            fail();
        }
    }
}
Also used : SecurityConfiguration(org.apache.jackrabbit.oak.spi.security.SecurityConfiguration) UserConfiguration(org.apache.jackrabbit.oak.spi.security.user.UserConfiguration) Test(org.junit.Test)

Aggregations

SecurityConfiguration (org.apache.jackrabbit.oak.spi.security.SecurityConfiguration)27 Test (org.junit.Test)21 PrivilegeConfiguration (org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConfiguration)4 UserConfiguration (org.apache.jackrabbit.oak.spi.security.user.UserConfiguration)4 CommitHook (org.apache.jackrabbit.oak.spi.commit.CommitHook)3 EditorHook (org.apache.jackrabbit.oak.spi.commit.EditorHook)3 ConfigurationParameters (org.apache.jackrabbit.oak.spi.security.ConfigurationParameters)3 AuthenticationConfiguration (org.apache.jackrabbit.oak.spi.security.authentication.AuthenticationConfiguration)3 Lists.newArrayList (com.google.common.collect.Lists.newArrayList)2 ArrayList (java.util.ArrayList)2 CompositeIndexEditorProvider (org.apache.jackrabbit.oak.plugins.index.CompositeIndexEditorProvider)2 IndexEditorProvider (org.apache.jackrabbit.oak.plugins.index.IndexEditorProvider)2 WorkspaceInitializer (org.apache.jackrabbit.oak.spi.lifecycle.WorkspaceInitializer)2 PrincipalConfiguration (org.apache.jackrabbit.oak.spi.security.principal.PrincipalConfiguration)2 Stopwatch (com.google.common.base.Stopwatch)1 IOException (java.io.IOException)1 Executor (java.util.concurrent.Executor)1 ScheduledThreadPoolExecutor (java.util.concurrent.ScheduledThreadPoolExecutor)1 ThreadPoolExecutor (java.util.concurrent.ThreadPoolExecutor)1 Nonnull (javax.annotation.Nonnull)1