protected String getUserNameFromMembership(final String user) { final AtomicReference<String> userName = new AtomicReference<String>(user); if (lookupUserForDn) { authenticateIfNeeded( new AuthenticatedLdapEntryContextCallback() { @Override public void executeWithContext( DirContext ctx, LdapEntryIdentification ldapEntryIdentification) { DirContextOperations obj = (DirContextOperations) LDAPUtils.getLdapTemplateInContext(ctx, template) .lookup(user); String name = obj.getObjectAttribute(userNameAttribute).toString(); Matcher m = userNamePattern.matcher(name); if (m.matches()) { name = m.group(1); } userName.set(name); } }); } return userName.get(); }
@Override public void initializeFromConfig(SecurityNamedServiceConfig config) throws IOException { super.initializeFromConfig(config); LDAPUserGroupServiceConfig ldapConfig = ((LDAPUserGroupServiceConfig) config); passwordEncoderName = ldapConfig.getPasswordEncoderName(); passwordValidatorName = ldapConfig.getPasswordPolicyName(); if (!isEmpty(ldapConfig.getPopulatedAttributes())) { populatedAttributes = ldapConfig.getPopulatedAttributes().trim().split("[\\s]*,[\\s]*"); } }
if (!isEmpty(ldapConfig.getGroupSearchBase())) { groupSearchBase = ldapConfig.getGroupSearchBase(); if (!isEmpty(ldapConfig.getUserSearchBase())) { userSearchBase = ldapConfig.getUserSearchBase(); if (!isEmpty(ldapConfig.getGroupSearchFilter())) { groupMembershipFilter = ldapConfig.getGroupSearchFilter(); Matcher m = lookForMembershipAttribute.matcher(groupMembershipFilter); if (m.matches()) { if (isEmpty(ldapConfig.getGroupMembershipAttribute())) { groupMembershipAttribute = m.group(1); if (!isEmpty(ldapConfig.getGroupMembershipAttribute())) { groupMembershipAttribute = ldapConfig.getGroupMembershipAttribute(); if (isEmpty(ldapConfig.getGroupSearchFilter())) { groupMembershipFilter = groupMembershipAttribute + "={0}"; if (!isEmpty(ldapConfig.getGroupFilter())) { groupNameFilter = ldapConfig.getGroupFilter(); if (isEmpty(ldapConfig.getGroupNameAttribute())) { Matcher m = lookForMembershipAttribute.matcher(groupNameFilter); if (m.matches()) { if (!isEmpty(ldapConfig.getGroupNameAttribute())) { groupNameAttribute = ldapConfig.getGroupNameAttribute(); if (isEmpty(ldapConfig.getGroupFilter())) { groupNameFilter = groupNameAttribute + "={0}";
@Override public void initializeFromConfig(SecurityNamedServiceConfig config) throws IOException { super.initializeFromConfig(config); LDAPRoleServiceConfig ldapConfig = (LDAPRoleServiceConfig) config; if (!isEmpty(ldapConfig.getAdminGroup())) { this.adminGroup = ldapConfig.getAdminGroup(); } if (!isEmpty(ldapConfig.getGroupAdminGroup())) { this.groupAdminGroup = ldapConfig.getGroupAdminGroup(); } } /** Read only store. */
protected String lookupDn(String username) { final AtomicReference<String> dn = new AtomicReference<String>(username); if (lookupUserForDn) { authenticateIfNeeded( new AuthenticatedLdapEntryContextCallback() { @Override public void executeWithContext( DirContext ctx, LdapEntryIdentification ldapEntryIdentification) { try { dn.set( LDAPUtils.getLdapTemplateInContext(ctx, template) .searchForSingleEntry( "", userNameFilter, new String[] {username}) .getDn() .toString()); } catch (Exception e) { // not found, let's use username instead } } }); } return dn.get(); }