@PostConstruct public void init() { this.ldapConfig = new LdapConfig(); this.ldapConfig.setServer(server); this.ldapConfig.setBaseDN(baseDN); this.ldapConfig.setManagerUser(managerUser); this.ldapConfig.setManagerPassword(managerPassword); this.ldapConfig.setPort(port); this.ldapConfig.setSslCertificateFile(sslCertificateFile); this.ldapConfig.setGroupBase(groupBase); this.ldapConfig.setUserBase(userBase); this.ldapConfig.setAuthentication(authentication); LdapPosixAccountsConfig posixAccountsConfig = new LdapPosixAccountsConfig(); if (posixAccountsDefaultGidNumber != null) { posixAccountsConfig.setDefaultGidNumber(posixAccountsDefaultGidNumber); } this.ldapConfig.setPosixAccountsConfig(posixAccountsConfig); LdapSambaAccountsConfig sambaAccountsConfig = new LdapSambaAccountsConfig(); sambaAccountsConfig.setSambaSIDPrefix(sambaAccountsSIDPrefix); if (sambaAccountsPrimaryGroupSID != null) { sambaAccountsConfig.setDefaultSambaPrimaryGroupSID(sambaAccountsPrimaryGroupSID); } this.ldapConfig.setSambaAccountsConfig(sambaAccountsConfig); }
public String getBase() { init(); return ldapConfig.getBaseDN(); }
/** * @see org.projectforge.business.ldap.LdapDao#getOuBase() */ @Override protected String getOuBase() { return ldapConfig.getGroupBase(); } }
/** * @see org.projectforge.business.ldap.LdapLoginHandler#initialize() */ @Override public void initialize() { super.initialize(); if (StringUtils.isBlank(ldapConfig.getManagerUser()) == true) { mode = Mode.SIMPLE; } else if (StringUtils.isNotBlank(ldapConfig.getGroupBase()) == true) { mode = Mode.USERS;// Mode.USER_GROUPS; log.warn("Groups aren't yet supported by this LDAP handler."); } else { mode = Mode.USERS; } switch (mode) { case SIMPLE: log.info("LDAP slave login handler works in mode 'simple'."); break; case USERS: log.info("LDAP slave login handler works in mode 'users'."); break; case USER_GROUPS: log.info("LDAP slave login handler works in mode 'user_groups'."); break; } }
private LdapConfig readConfig() LdapConfig ldapConfig = new LdapConfig(); ldapConfig.setPort(JUnitLDAPTestWrapper.ldapServerWrap.getPort()); ldapConfig.setServer(JUnitLDAPTestWrapper.ldapServerWrap.getTransports()[0].getAddress()); ldapConfig.setManagerUser("uid=admin,ou=system"); ldapConfig.setManagerPassword(""); ldapConfig.setUserBase("ou=users"); ldapConfig.setBaseDN("dc=example,dc=org"); ldapConfig.setGroupBase("ou=groups"); return ldapConfig; } else {
/** * @see org.projectforge.business.login.LoginHandler#initialize() */ @Override public void initialize() { if (ldapConfig == null) { // May-be already set by test class. this.ldapConfig = ldapService.getLdapConfig(); if (ldapConfig == null || ldapConfig.getServer() == null) { log.warn("No LDAP configured in config.xml, so any login will be impossible!"); } } baseDN = ldapConfig.getBaseDN(); userBase = ldapConfig.getUserBase(); groupBase = ldapConfig.getGroupBase(); ldapConnector = new LdapConnector(ldapConfig); ldapGroupDao.setLdapConnector(ldapConnector); // May-be already set by test class. ldapUserDao.setLdapConnector(ldapConnector); ldapUserDao.setLdapPersonDao((LdapPersonDao) ldapPersonDao.setLdapConnector(ldapConnector)); if (ldapOrganizationalUnitDao == null) { // May-be already set by test class. ldapOrganizationalUnitDao = new LdapOrganizationalUnitDao(); ldapOrganizationalUnitDao.setLdapConnector(ldapConnector); } }
private void assertMembers(final LdapGroup ldapGroup, final String... usernames) { final Set<String> members = ldapGroup.getMembers(); Assert.assertFalse(CollectionUtils.isEmpty(members)); Assert.assertEquals(usernames.length, members.size()); final LdapConfig ldapConfig = ldapRealTestHelper.ldapConfig; for (final String username : usernames) { final String user = "uid=" + username + "," + ldapConfig.getUserBase() + "," + ldapConfig.getBaseDN(); assertTrue(members.contains(user)); } }
public boolean isSambaAccountsConfigured() { final LdapConfig ldapConfig = ldapService.getLdapConfig(); if (ldapConfig == null) { return false; } final LdapSambaAccountsConfig sambaAccountsConfig = ldapConfig.getSambaAccountsConfig(); return sambaAccountsConfig != null && StringUtils.isNotBlank(sambaAccountsConfig.getSambaSIDPrefix()) == true; }
@BeforeClass public void setup() { final LdapConfig ldapConfig = new LdapConfig(); ldapService.setLdapConfig(ldapConfig); final LdapPosixAccountsConfig posixAccountsConfig = new LdapPosixAccountsConfig(); ldapConfig.setPosixAccountsConfig(posixAccountsConfig); }
public void loginAndCreateLdapUser() { final String userBase = "ou=pf-mock-test-users"; final LdapUserDao ldapUserDao = mock(LdapUserDao.class); loginHandler.ldapConfig = new LdapConfig().setUserBase(userBase); loginHandler.ldapUserDao = ldapUserDao; loginHandler.ldapOrganizationalUnitDao = mock(LdapOrganizationalUnitDao.class); loginHandler.initialize(); Login.getInstance().setLoginHandler(loginHandler); logon(TEST_ADMIN_USER); final PFUserDO user = new PFUserDO().setUsername("kai").setFirstname("Kai").setLastname("Reinhard"); userService.createEncryptedPassword(user, "successful"); userService.save(user); Assert.assertEquals(LoginResultStatus.SUCCESS, loginHandler.checkLogin("kai", "successful").getLoginResultStatus()); final ArgumentCaptor<LdapUser> argumentCaptor = ArgumentCaptor.forClass(LdapUser.class); verify(ldapUserDao).createOrUpdate(Mockito.anyString(), argumentCaptor.capture()); final LdapUser createdLdapUser = argumentCaptor.getValue(); Assert.assertEquals("kai", createdLdapUser.getUid()); Assert.assertEquals("Kai", createdLdapUser.getGivenName()); Assert.assertEquals("Reinhard", createdLdapUser.getSurname()); // Assert.assertEquals("successful", createdLdapUser.get()); logoff(); }
@Override public String getOuBase() { return ldapConfig.getUserBase(); }
final String organizationalUnits = ldapConfig.getUserBase(); final LdapUser ldapUser = ldapUserDao.authenticate(username, password, organizationalUnits); if (ldapUser == null) { user = pfUserDOConverter.convert(ldapUser); if (mode == Mode.SIMPLE || ldapConfig.isStorePasswords() == false) { user.setNoPassword(); } else { } else if (mode != Mode.SIMPLE) { PFUserDOConverter.copyUserFields(pfUserDOConverter.convert(ldapUser), user); if (ldapConfig.isStorePasswords() == true) { userService.createEncryptedPassword(user, password);
final LdapPosixAccountsConfig posixAccountsConfig = ldapConfig != null ? ldapConfig.getPosixAccountsConfig() : null; final LdapSambaAccountsConfig sambaAccountsConfig = ldapConfig != null ? ldapConfig.getSambaAccountsConfig() : null; LdapUserValues values = null; if (posixAccountsConfig != null) {
ldapConfig.getSambaAccountsConfig().getSambaSID(user.getSambaSIDNumber())); createAndAddModificationItems(list, "sambaPrimaryGroupSID", ldapConfig.getSambaAccountsConfig().getSambaPrimaryGroupSID(user.getSambaPrimaryGroupSIDNumber())); createAndAddModificationItems(list, "sambaAcctFlags", "U "); createAndAddModificationItems(list, "sambaPasswordHistory",
protected List<LdapUser> getAllLdapUsers(final DirContext ctx) throws NamingException { final String organizationalUnits = ldapConfig.getUserBase(); final List<LdapUser> ldapUsers = ldapUserDao.findAll(ctx, organizationalUnits); return ldapUsers; }
final Integer sambaSIDNumber = ldapConfig.getSambaAccountsConfig().getSambaSIDNumber(sambaSID); user.setSambaSIDNumber(sambaSIDNumber); final String sambaPrimaryGroupSID = LdapUtils.getAttributeStringValue(attributes, "sambaPrimaryGroupSID"); final Integer sambaPrimaryGroupSIDNumber = ldapConfig.getSambaAccountsConfig() .getSambaSIDNumber(sambaPrimaryGroupSID); user.setSambaPrimaryGroupSIDNumber(sambaPrimaryGroupSIDNumber);
protected List<LdapGroup> getAllLdapGroups() { final String organizationalUnits = ldapConfig.getGroupBase(); final List<LdapGroup> ldapGroups = ldapGroupDao.findAll(organizationalUnits); return ldapGroups; }
protected List<LdapUser> getAllLdapUsers() { final String organizationalUnits = ldapConfig.getUserBase(); final List<LdapUser> ldapUsers = ldapUserDao.findAll(organizationalUnits); return ldapUsers; }
/** * @see org.projectforge.business.ldap.LdapDao#mapToObject(java.lang.String, javax.naming.directory.Attributes) */ @Override protected LdapGroup mapToObject(final String dn, final Attributes attributes) throws NamingException { final LdapGroup group = new LdapGroup(); group.setBusinessCategory(LdapUtils.getAttributeStringValue(attributes, "businessCategory")); group.setDescription(LdapUtils.getAttributeStringValue(attributes, "description")); group.setOrganization(LdapUtils.getAttributeStringValue(attributes, "o")); final String[] members = LdapUtils.getAttributeStringValues(attributes, "uniqueMember"); if (members != null) { for (final String member : members) { group.addMember(member, ldapConfig.getBaseDN()); } } final boolean posixAccountsConfigured = ldapUserDao.isPosixAccountsConfigured(); if (posixAccountsConfigured == true) { final String no = LdapUtils.getAttributeStringValue(attributes, "gidNumber"); group.setGidNumber(NumberHelper.parseInteger(no)); } return group; }
/** * Sets next free SambaSID or, if free and given the same id as the posix UID. * * @param ldapUserValues * @param user */ public void setDefaultValues(final LdapUserValues ldapUserValues, final PFUserDO user) { final LdapConfig ldapConfig = ldapService.getLdapConfig(); LdapSambaAccountsConfig ldapSambaAccountsConfig = ldapConfig != null ? ldapConfig.getSambaAccountsConfig() : null; if (ldapSambaAccountsConfig == null) { ldapSambaAccountsConfig = new LdapSambaAccountsConfig(); } if (ldapUserValues.getUidNumber() != null && isGivenNumberFree(user, ldapUserValues.getUidNumber()) == true) { ldapUserValues.setSambaSIDNumber(ldapUserValues.getUidNumber()); } else { ldapUserValues.setSambaSIDNumber(getNextFreeSambaSIDNumber()); } if (ldapSambaAccountsConfig.getDefaultSambaPrimaryGroupSID() != null) { ldapUserValues.setSambaPrimaryGroupSIDNumber(ldapSambaAccountsConfig.getDefaultSambaPrimaryGroupSID()); } }