public AccessManager getAccessManager(Session session, AMContext amContext) throws RepositoryException { try { AccessManagerConfig amc = config.getAccessManagerConfig(); AccessManager accessMgr; if (amc == null) { accessMgr = new SimpleAccessManager(); } else { accessMgr = amc.newInstance(AccessManager.class); } accessMgr.init(amContext); return accessMgr; } catch (AccessDeniedException ade) { throw ade; } catch (Exception e) { String msg = "Failed to instantiate AccessManager implementation"; log.error(msg, e); throw new RepositoryException(msg, e); } }
private AccessManagerConfig buildAccessManagerConfig(){ Properties prop=new Properties(); BeanConfig beanConfig=new BeanConfig("org.apache.jackrabbit.core.security.simple.SimpleAccessManager",prop); AccessManagerConfig accessManagerConfig=new AccessManagerConfig(beanConfig); return accessManagerConfig; }
/** * @see JackrabbitSecurityManager#getAccessManager(Session,AMContext) */ public AccessManager getAccessManager(Session session, AMContext amContext) throws RepositoryException { checkInitialized(); AccessManagerConfig amConfig = repository.getConfig().getSecurityConfig().getAccessManagerConfig(); try { String wspName = session.getWorkspace().getName(); AccessControlProvider pp = getAccessControlProvider(wspName); AccessManager accessMgr; if (amConfig == null) { log.debug("No configuration entry for AccessManager. Using org.apache.jackrabbit.core.security.DefaultAccessManager"); accessMgr = new DefaultAccessManager(); } else { accessMgr = amConfig.newInstance(AccessManager.class); } accessMgr.init(amContext, pp, workspaceAccessManager); return accessMgr; } catch (AccessDeniedException e) { // re-throw throw e; } catch (Exception e) { // wrap in RepositoryException String clsName = (amConfig == null) ? "-- missing access manager configuration --" : amConfig.getClassName(); String msg = "Failed to instantiate AccessManager (" + clsName + ")"; log.error(msg, e); throw new RepositoryException(msg, e); } }
assertEquals( "org.apache.jackrabbit.core.security.DefaultAccessManager", amc.getClassName()); assertTrue(amc.getParameters().isEmpty());
/** * @see JackrabbitSecurityManager#getAccessManager(Session,AMContext) */ public AccessManager getAccessManager(Session session, AMContext amContext) throws RepositoryException { checkInitialized(); AccessManagerConfig amConfig = repository.getConfig().getSecurityConfig().getAccessManagerConfig(); try { String wspName = session.getWorkspace().getName(); AccessControlProvider pp = getAccessControlProvider(wspName); AccessManager accessMgr; if (amConfig == null) { log.debug("No configuration entry for AccessManager. Using org.apache.jackrabbit.core.security.DefaultAccessManager"); accessMgr = new DefaultAccessManager(); } else { accessMgr = amConfig.newInstance(AccessManager.class); } accessMgr.init(amContext, pp, workspaceAccessManager); return accessMgr; } catch (AccessDeniedException e) { // re-throw throw e; } catch (Exception e) { // wrap in RepositoryException String clsName = (amConfig == null) ? "-- missing access manager configuration --" : amConfig.getClassName(); String msg = "Failed to instantiate AccessManager (" + clsName + ")"; log.error(msg, e); throw new RepositoryException(msg, e); } }
@Override protected AccessManager createAccessManager(Subject subject) throws AccessDeniedException, RepositoryException { AccessManagerConfig amConfig = context.getRepository().getConfig().getAccessManagerConfig(); try { HippoAMContext ctx = new HippoAMContext( new File((context.getRepository()).getConfig().getHomeDir()), context.getRepositoryContext().getFileSystem(), this, subject, context.getHierarchyManager(), context.getPrivilegeManager(), this, getWorkspace().getName(), context.getNodeTypeManager(), getItemStateManager()); AccessManager accessMgr = amConfig.newInstance(AccessManager.class); accessMgr.init(ctx); if (accessMgr instanceof ItemStateListener) { context.getItemStateManager().addListener((ItemStateListener) accessMgr); } return accessMgr; } catch (AccessDeniedException ex) { throw ex; } catch (Exception ex) { String msg = "failed to instantiate AccessManager implementation: "+amConfig.getClassName(); log.error(msg, ex); throw new RepositoryException(msg, ex); } }
/** * @see JackrabbitSecurityManager#getAccessManager(Session,AMContext) */ public AccessManager getAccessManager(Session session, AMContext amContext) throws RepositoryException { checkInitialized(); try { String wspName = session.getWorkspace().getName(); AccessControlProvider acP = getAccessControlProvider(systemSession, wspName); AccessManagerConfig amc = config.getAccessManagerConfig(); AccessManager accessMgr; if (amc == null) { accessMgr = new SimpleAccessManager(); } else { accessMgr = amc.newInstance(AccessManager.class); } accessMgr.init(amContext, acP, workspaceAccessManager); return accessMgr; } catch (AccessDeniedException ade) { // re-throw throw ade; } catch (Exception e) { // wrap in RepositoryException String msg = "failed to instantiate AccessManager implementation: " + SimpleAccessManager.class.getName(); log.error(msg, e); throw new RepositoryException(msg, e); } }
/** * Parses the access manager configuration. * * @param security the <security> element. * @return the access manager configuration or <code>null</code>. * @throws ConfigurationException if the configuration is broken */ public AccessManagerConfig parseAccessManagerConfig(Element security) throws ConfigurationException { // Optional access manager config entry Element accessMgr = getElement(security, ACCESS_MANAGER_ELEMENT, false); if (accessMgr != null) { return new AccessManagerConfig(parseBeanConfig(accessMgr)); } else { return null; } }
@Override protected AccessManager createAccessManager(Subject subject) throws AccessDeniedException, RepositoryException { AccessManagerConfig amConfig = context.getRepository().getConfig().getAccessManagerConfig(); try { HippoAMContext ctx = new HippoAMContext( new File((context.getRepository()).getConfig().getHomeDir()), context.getRepositoryContext().getFileSystem(), this, subject, context.getHierarchyManager(), context.getPrivilegeManager(), this, getWorkspace().getName(), context.getNodeTypeManager(), getItemStateManager()); AccessManager accessMgr = amConfig.newInstance(AccessManager.class); accessMgr.init(ctx); if (accessMgr instanceof ItemStateListener) { context.getItemStateManager().addListener((ItemStateListener) accessMgr); } return accessMgr; } catch (AccessDeniedException ex) { throw ex; } catch (Exception ex) { String msg = "failed to instantiate AccessManager implementation: "+amConfig.getClassName(); log.error(msg, ex); throw new RepositoryException(msg, ex); } }
/** * @see JackrabbitSecurityManager#getAccessManager(Session,AMContext) */ public AccessManager getAccessManager(Session session, AMContext amContext) throws RepositoryException { checkInitialized(); try { String wspName = session.getWorkspace().getName(); AccessControlProvider acP = getAccessControlProvider(systemSession, wspName); AccessManagerConfig amc = config.getAccessManagerConfig(); AccessManager accessMgr; if (amc == null) { accessMgr = new SimpleAccessManager(); } else { accessMgr = amc.newInstance(AccessManager.class); } accessMgr.init(amContext, acP, workspaceAccessManager); return accessMgr; } catch (AccessDeniedException ade) { // re-throw throw ade; } catch (Exception e) { // wrap in RepositoryException String msg = "failed to instantiate AccessManager implementation: " + SimpleAccessManager.class.getName(); log.error(msg, e); throw new RepositoryException(msg, e); } }
/** * Parses the access manager configuration. * * @param security the <security> element. * @return the access manager configuration or <code>null</code>. * @throws ConfigurationException if the configuration is broken */ public AccessManagerConfig parseAccessManagerConfig(Element security) throws ConfigurationException { // Optional access manager config entry Element accessMgr = getElement(security, ACCESS_MANAGER_ELEMENT, false); if (accessMgr != null) { return new AccessManagerConfig(parseBeanConfig(accessMgr)); } else { return null; } }
public void testConfig1() throws ConfigurationException { Element xml = parseXML(new InputSource(new StringReader(CONFIG_1)), true); SecurityConfig config = parser.parseSecurityConfig(xml); assertNotNull(config.getAppName()); assertEquals("Jackrabbit", config.getAppName()); SecurityManagerConfig smc = config.getSecurityManagerConfig(); assertNotNull(smc); assertTrue(smc.newInstance(JackrabbitSecurityManager.class) instanceof SimpleSecurityManager); assertNull(smc.getWorkspaceAccessConfig()); assertNull(smc.getWorkspaceName()); assertNotNull(config.getAccessManagerConfig()); assertTrue(config.getAccessManagerConfig().newInstance(AccessManager.class) instanceof SimpleAccessManager); assertNull(config.getLoginModuleConfig()); }
public void testConfig2() throws ConfigurationException { Element xml = parseXML(new InputSource(new StringReader(CONFIG_2)), true); SecurityConfig config = parser.parseSecurityConfig(xml); assertNotNull(config.getAppName()); assertEquals("Jackrabbit", config.getAppName()); SecurityManagerConfig smc = config.getSecurityManagerConfig(); assertNotNull(smc); assertTrue(smc.newInstance(JackrabbitSecurityManager.class) instanceof DefaultSecurityManager); assertNull(smc.getWorkspaceAccessConfig()); assertEquals("security", smc.getWorkspaceName()); assertNull(smc.getUserManagerConfig()); AccessManagerConfig amc = config.getAccessManagerConfig(); assertNotNull(amc); assertTrue(amc.newInstance(AccessManager.class) instanceof DefaultAccessManager); LoginModuleConfig lmc = config.getLoginModuleConfig(); assertNotNull(lmc); assertTrue(lmc.getLoginModule() instanceof DefaultLoginModule); Properties options = lmc.getParameters(); assertNotNull(options); assertEquals("anonymous", options.getProperty("anonymousId")); assertEquals("admin", options.getProperty("adminId")); assertEquals("org.apache.jackrabbit.TestPrincipalProvider", options.getProperty("principalProvider")); }