1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/noear-okldap

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

OkLdap

  • Если вы хотите использовать LDAP для быстрого входа в свою бизнес-систему?
  • Если ваша внутренняя система хочет использовать интерфейс для быстрого создания учётных записей сотрудников LDAP?

Вы можете попробовать OkLdap.

OkLdap — это простой клиент, специально разработанный для интеграции внутренних учётных записей на основе LDAP.

Основные функции:

  1. Быстрый интерфейс входа и примеры.
  2. Интерфейс изменения пароля.
  3. Интерфейс управления сотрудниками (добавление, удаление, изменение).

Демонстрация:

Введение зависимости:

 <dependency>
    <groupId>org.noear</groupId>
    <artifactId>okldap</artifactId>
    <version>1.1.4</version>
</dependency>

Конфигурация:

#Необходимые параметры
ldap:
  url: "ldap://127.0.0.1:389"
  baseDn: "DC=company,DC=com"
  bindDn: "cn=admin,dc=company,dc=com"
  paasword: "123456"
  userFilter: "cn=%s"
  groupFilter: "cn=%s"

#Параметры демонстрационного примера
demo:
  limit:
    groupCn: "manager"

Код: (дополнительный код приложения, см. модульные тесты в исходном коде)


//Вход приложения
public class App {
    public static void main(String[] args) {
        Solon.start(App.class, args);
    }
}

//Конфигуратор компонента
@Configuration
public class Config {
    @Bean
    public LdapClient ldapClient(@Inject("${ldap}") LdapClient ldapClient) {
        return ldapClient;
    }
}

//Контроллер примера
@Mapping("demo")
@Controller
public class DemoController {
    @Inject
    LdapClient ldapClient;

    @Inject("${demo.limit.groupCn}")
    String limitGroupCn;

    /**
     * Вход::
     * */
    @Post
    @Mapping("login")
    public Result login(String userName, String userPassword) {
        try (LdapSession session = ldapClient.open()) {
            LdapPerson person = session.findPersonOne(userName);

            if (person == null) {
                return Result.failure("Пользователь не существует");
            }

            if (person.verifyPassword(userPassword) == false) {
                return Result.failure("Пароль пользователя неверен");
            }

            if (Utils.isNotEmpty(limitGroupCn)) {
                if (person.inGroup(session.findGroupOne(limitGroupCn)) == false) {
                    return Result.failure("Недостаточно прав");
                }
            }

            //Можно синхронизировать с локальной базой данных пользователей...

            return Result.succeed();
        }
    }

    /**
     * Создание пользователя::
     * */
    @Post
    @Mapping("create")
    public Result create(String userName, String userPassword, String stageName, String realName) {
        try (LdapSession session = ldapClient.open()) {
            LdapPerson person = new LdapPerson();
            person.setCn(userName);
            person.setUserPassword(userPassword);
            person.setDisplayName(stageName);
            person.setGivenName(realName);

            session.createPerson("employee", person);
        }

        return Result.succeed();
    }

    /**
     *  Обновление пользователя::
     * */
    @Post
    @Mapping("update")
    public Result update(String userName, String stageName, String realName) {
        try (LdapSession session = ldapClient.open()) {
            LdapPerson person = session.findPersonOne(userName);
            person.setDisplayName(stageName);
            person.setGivenName(realName);

            session.updatePerson(person);
        }

        return Result.succeed();
    }
}

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

noear — специальный удобный клиент для интеграции в интранет на основе учётных записей LDAP. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/noear-okldap.git
git@api.gitlife.ru:oschina-mirror/noear-okldap.git
oschina-mirror
noear-okldap
noear-okldap
main