Search in sources :

Example 1 with AccessControlListBean

use of org.alfresco.filesys.config.acl.AccessControlListBean in project alfresco-repository by Alfresco.

the class ServerConfigurationBean method processSecurityConfig.

/**
 * Process the security configuration
 */
protected void processSecurityConfig() {
    // Create the security configuration section
    SecurityConfigSection secConfig = new SecurityConfigSection(this);
    try {
        // Check if global access controls have been specified
        AccessControlListBean accessControls = securityConfigBean.getGlobalAccessControl();
        if (accessControls != null) {
            // Parse the access control list
            AccessControlList acls = accessControls.toAccessControlList(secConfig);
            if (acls != null)
                secConfig.setGlobalAccessControls(acls);
        }
        // Check if a JCE provider class has been specified
        String jceProvider = securityConfigBean.getJCEProvider();
        if (jceProvider != null && jceProvider.length() > 0) {
            // Set the JCE provider
            secConfig.setJCEProvider(jceProvider);
        } else {
            // Use the default Bouncy Castle JCE provider
            secConfig.setJCEProvider("org.bouncycastle.jce.provider.BouncyCastleProvider");
        }
        // Check if a share mapper has been specified
        ShareMapper shareMapper = securityConfigBean.getShareMapper();
        if (shareMapper != null) {
            // Associate the share mapper
            secConfig.setShareMapper(shareMapper);
        }
    } catch (InvalidConfigurationException ex) {
        throw new AlfrescoRuntimeException(ex.getMessage());
    }
}
Also used : AccessControlList(org.alfresco.jlan.server.auth.acl.AccessControlList) SecurityConfigSection(org.alfresco.jlan.server.config.SecurityConfigSection) ShareMapper(org.alfresco.jlan.server.core.ShareMapper) AlfrescoRuntimeException(org.alfresco.error.AlfrescoRuntimeException) AccessControlListBean(org.alfresco.filesys.config.acl.AccessControlListBean) InvalidConfigurationException(org.alfresco.jlan.server.config.InvalidConfigurationException)

Example 2 with AccessControlListBean

use of org.alfresco.filesys.config.acl.AccessControlListBean in project alfresco-repository by Alfresco.

the class ServerConfigurationBean method processFilesystemsConfig.

/**
 * Process the filesystems configuration
 */
protected void processFilesystemsConfig() {
    // Create the filesystems configuration section
    FilesystemsConfigSection fsysConfig = new FilesystemsConfigSection(this);
    // Access the security configuration section
    SecurityConfigSection secConfig = (SecurityConfigSection) getConfigSection(SecurityConfigSection.SectionName);
    if (this.filesystemContexts != null) {
        for (DeviceContext filesystem : this.filesystemContexts) {
            try {
                // Check the filesystem type and use the appropriate driver
                DiskSharedDevice filesys = null;
                // Create a new filesystem driver instance and register a context for
                // the new filesystem
                ExtendedDiskInterface filesysDriver = getRepoDiskInterface();
                ContentContext filesysContext = (ContentContext) filesystem;
                // Create state cache here and inject
                StandaloneFileStateCache standaloneCache = new StandaloneFileStateCache();
                standaloneCache.initializeCache(new GenericConfigElement(""), this);
                filesysContext.setStateCache(standaloneCache);
                if (filesysContext.hasStateCache()) {
                    // Register the state cache with the reaper thread
                    // has many side effects including initialisation of the cache
                    fsysConfig.addFileStateCache(filesystem.getDeviceName(), filesysContext.getStateCache());
                    // Create the lock manager for the context.
                    FileStateLockManager lockMgr = new FileStateLockManager(filesysContext.getStateCache());
                    filesysContext.setLockManager(lockMgr);
                    filesysContext.setOpLockManager(lockMgr);
                }
                if (!ftpConfigBean.getServerEnabled() && isContentDiskDriver2(filesysDriver)) {
                    ((ContentContext) filesystem).setDisableNodeMonitor(true);
                }
                filesysDriver.registerContext(filesystem);
                // Check if an access control list has been specified
                AccessControlList acls = null;
                AccessControlListBean accessControls = filesysContext.getAccessControlList();
                if (accessControls != null) {
                    // Parse the access control list
                    acls = accessControls.toAccessControlList(secConfig);
                } else if (secConfig.hasGlobalAccessControls()) {
                    // Use the global access control list for this disk share
                    acls = secConfig.getGlobalAccessControls();
                }
                // Create the shared filesystem
                filesys = new DiskSharedDevice(filesystem.getDeviceName(), filesysDriver, filesysContext);
                filesys.setConfiguration(this);
                // Add any access controls to the share
                filesys.setAccessControlList(acls);
                if (filesysContext.getDisableChangeNotifications() == false)
                    filesysContext.enableChangeHandler(true);
                // Start the filesystem
                filesysContext.startFilesystem(filesys);
                // Add the new filesystem
                fsysConfig.addShare(filesys);
            } catch (DeviceContextException ex) {
                throw new AlfrescoRuntimeException("Error creating filesystem " + filesystem.getDeviceName(), ex);
            } catch (InvalidConfigurationException ex) {
                throw new AlfrescoRuntimeException(ex.getMessage(), ex);
            }
        }
    } else {
        // No filesystems defined
        logger.warn("No filesystems defined");
    }
// home folder share mapper could be declared in security config
}
Also used : AccessControlList(org.alfresco.jlan.server.auth.acl.AccessControlList) DeviceContextException(org.alfresco.jlan.server.core.DeviceContextException) SecurityConfigSection(org.alfresco.jlan.server.config.SecurityConfigSection) GenericConfigElement(org.springframework.extensions.config.element.GenericConfigElement) ExtendedDiskInterface(org.alfresco.filesys.alfresco.ExtendedDiskInterface) StandaloneFileStateCache(org.alfresco.jlan.server.filesys.cache.StandaloneFileStateCache) AccessControlListBean(org.alfresco.filesys.config.acl.AccessControlListBean) InvalidConfigurationException(org.alfresco.jlan.server.config.InvalidConfigurationException) FilesystemsConfigSection(org.alfresco.jlan.server.filesys.FilesystemsConfigSection) DeviceContext(org.alfresco.jlan.server.core.DeviceContext) FileStateLockManager(org.alfresco.jlan.server.filesys.cache.FileStateLockManager) AlfrescoRuntimeException(org.alfresco.error.AlfrescoRuntimeException) ContentContext(org.alfresco.filesys.repo.ContentContext) DiskSharedDevice(org.alfresco.jlan.server.filesys.DiskSharedDevice)

Aggregations

AlfrescoRuntimeException (org.alfresco.error.AlfrescoRuntimeException)2 AccessControlListBean (org.alfresco.filesys.config.acl.AccessControlListBean)2 AccessControlList (org.alfresco.jlan.server.auth.acl.AccessControlList)2 InvalidConfigurationException (org.alfresco.jlan.server.config.InvalidConfigurationException)2 SecurityConfigSection (org.alfresco.jlan.server.config.SecurityConfigSection)2 ExtendedDiskInterface (org.alfresco.filesys.alfresco.ExtendedDiskInterface)1 ContentContext (org.alfresco.filesys.repo.ContentContext)1 DeviceContext (org.alfresco.jlan.server.core.DeviceContext)1 DeviceContextException (org.alfresco.jlan.server.core.DeviceContextException)1 ShareMapper (org.alfresco.jlan.server.core.ShareMapper)1 DiskSharedDevice (org.alfresco.jlan.server.filesys.DiskSharedDevice)1 FilesystemsConfigSection (org.alfresco.jlan.server.filesys.FilesystemsConfigSection)1 FileStateLockManager (org.alfresco.jlan.server.filesys.cache.FileStateLockManager)1 StandaloneFileStateCache (org.alfresco.jlan.server.filesys.cache.StandaloneFileStateCache)1 GenericConfigElement (org.springframework.extensions.config.element.GenericConfigElement)1