public void testGroupManagerWithDynamicGroupsDisabled() throws Exception { Map<String, Object> env = new HashMap<String, Object>(); // Create a new context pointing to the overseas partition env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://localhost:12345/o=sonatype"); env.put(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system"); env.put(Context.SECURITY_CREDENTIALS, "secret"); env.put(Context.SECURITY_AUTHENTICATION, "simple"); InitialLdapContext initialContext = new InitialLdapContext(new Hashtable<String, Object>(env), null); LdapAuthConfiguration configuration = new LdapAuthConfiguration(); configuration.setUserBaseDn("ou=people"); configuration.setUserRealNameAttribute("cn"); configuration.setUserMemberOfAttribute("businesscategory"); configuration.setLdapGroupsAsRoles(false); LdapGroupDAO lgm = (LdapGroupDAO) lookup(LdapGroupDAO.class.getName()); try { lgm.getGroupMembership("cstamas", initialContext, configuration); fail("Expected NoLdapUserRolesFoundException"); } catch (NoLdapUserRolesFoundException e) { // good } try { lgm.getGroupMembership("intruder", initialContext, configuration); fail("Expected NoLdapUserRolesFoundException"); } catch (NoLdapUserRolesFoundException e) { // good } }
public void testGroupManagerWithDynamicGroups() throws Exception { Map<String, Object> env = new HashMap<String, Object>(); // Create a new context pointing to the overseas partition env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://localhost:12345/o=sonatype"); env.put(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system"); env.put(Context.SECURITY_CREDENTIALS, "secret"); env.put(Context.SECURITY_AUTHENTICATION, "simple"); // if want to use explicitly ApacheDS and not the Sun supplied ones // env.put( Context.PROVIDER_URL, "o=sonatype" ); // env.put( Context.INITIAL_CONTEXT_FACTORY, // "org.apache.directory.server.jndi.ServerContextFactory" ); InitialLdapContext initialContext = new InitialLdapContext(new Hashtable<String, Object>(env), null); LdapAuthConfiguration configuration = new LdapAuthConfiguration(); configuration.setUserBaseDn("ou=people"); // configuration.setGroupBaseDn( "ou=groups" ); // configuration.setGroupObjectClass( "groupOfUniqueNames" ); // configuration.setGroupMemberAttribute( "uniqueMember" ); configuration.setUserRealNameAttribute("cn"); configuration.setUserMemberOfAttribute("businesscategory"); configuration.setLdapGroupsAsRoles(true); LdapGroupDAO lgm = (LdapGroupDAO) lookup(LdapGroupDAO.class.getName()); Set<String> groups = lgm.getGroupMembership("cstamas", initialContext, configuration); assertEquals(2, groups.size()); assertTrue(groups.contains("public")); assertTrue(groups.contains("snapshots")); groups = lgm.getGroupMembership("brianf", initialContext, configuration); assertEquals(2, groups.size()); assertTrue(groups.contains("public")); assertTrue(groups.contains("releases")); groups = lgm.getGroupMembership("jvanzyl", initialContext, configuration); assertEquals(3, groups.size()); assertTrue(groups.contains("public")); assertTrue(groups.contains("releases")); assertTrue(groups.contains("snapshots")); try { lgm.getGroupMembership("intruder", initialContext, configuration); fail(); } catch (NoLdapUserRolesFoundException e) { // good } }
public void testUserManagerWithDynamicGroupsDisabled() throws Exception { Map<String, Object> env = new HashMap<String, Object>(); // Create a new context pointing to the overseas partition env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://localhost:12345/o=sonatype"); env.put(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system"); env.put(Context.SECURITY_CREDENTIALS, "secret"); env.put(Context.SECURITY_AUTHENTICATION, "simple"); InitialLdapContext initialContext = new InitialLdapContext(new Hashtable<String, Object>(env), null); LdapAuthConfiguration configuration = new LdapAuthConfiguration(); configuration.setUserBaseDn("ou=people"); configuration.setUserRealNameAttribute("cn"); configuration.setUserMemberOfAttribute("businesscategory"); configuration.setLdapGroupsAsRoles(false); LdapUserDAO lum = (LdapUserDAO) lookup(LdapUserDAO.class.getName()); LdapUser user = lum.getUser("cstamas", initialContext, configuration); assertEquals("cstamas", user.getUsername()); // assertEquals( "Tamas Cservenak", user.getRealName() ); assertEquals("cstamas123", user.getPassword()); assertEquals(0, user.getMembership().size()); user = lum.getUser("brianf", initialContext, configuration); assertEquals("brianf", user.getUsername()); // assertEquals( "Brian Fox", user.getRealName() ); assertEquals("brianf123", user.getPassword()); assertEquals(0, user.getMembership().size()); user = lum.getUser("jvanzyl", initialContext, configuration); assertEquals("jvanzyl", user.getUsername()); // assertEquals( "Jason Van Zyl", user.getRealName() ); assertEquals("jvanzyl123", user.getPassword()); assertEquals(0, user.getMembership().size()); try { user = lum.getUser("intruder", initialContext, configuration); fail(); } catch (NoSuchLdapUserException e) { // good } }