public Object mapFromAttributes()

in manager/general/src/main/java/org/apache/doris/stack/connector/LdapUserAttributeMapper.java [50:100]


    public Object mapFromAttributes(Attributes attrs) throws NamingException {

        CoreUserEntity user  = new CoreUserEntity();

        // only check once
        if (!flag) {
            Set<String> ldapAttributes = new HashSet<>();
            NamingEnumeration<? extends Attribute> all = attrs.getAll();
            while (all.hasMore()) {
                Attribute next = all.next();
                ldapAttributes.add(next.getID());
            }
            if (!ldapAttributes.contains(ldapSettingReq.getLdapAttributeFirstName())) {
                throw new BadRequestException(String.format("输入属性%s不存在", ldapSettingReq.getLdapAttributeFirstName()));
            }
            if (!ldapAttributes.contains(ldapSettingReq.getLdapAttributeLastName())) {
                throw new BadRequestException(String.format("输入属性%s不存在", ldapSettingReq.getLdapAttributeLastName()));
            }
            flag = true;
        }

        // set uid as our firstName,in ldap first name is givenName
        if (attrs.get(ldapSettingReq.getLdapAttributeFirstName()) != null) {
            user.setFirstName(attrs.get(ldapSettingReq.getLdapAttributeFirstName()).get().toString());
        } else {
            user.setFirstName("");
        }

        // mail is not required
        if (attrs.get(ldapSettingReq.getLdapAttributeEmail()) != null) {
            user.setEmail(attrs.get(ldapSettingReq.getLdapAttributeEmail()).get().toString());
        } else {
            user.setEmail("");
        }

        // last name is sn
        if (attrs.get(ldapSettingReq.getLdapAttributeLastName()) != null) {
            user.setLastName(attrs.get(ldapSettingReq.getLdapAttributeLastName()).get().toString());

        } else {
            user.setLastName("");
        }

        if (attrs.get("entryUUID") != null) {
            user.setEntryUUID(attrs.get("entryUUID").get().toString());
        } else {
            user.setEntryUUID("");
        }

        return user;
    }