Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    RouterOS
    Создайте пользователей User Manager из внешней базы данных.

    Создайте пользователей User Manager из внешней базы данных.

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Создайте пользователей User Manager из внешней базы данных., RouterOS
     
    pribasv
    Guest
    #1
    0
    19.02.2015 16:45:00
    По просьбе одного из наших клиентов — отеля, мы разработали системный сервис, который берет имена пользователей и пароли из базы данных и создает, а также поддерживает пользователей hotspot в User Manager. Скачать можно по ссылке http://www.infinitel.es/productos/infinitel/hotspot/hsauto_en.html

    В качестве примера: в отеле используется SQL Server с программным обеспечением для управления отелем, где логично хранится список номеров и их гостей. Сервис периодически выполняет SQL-запрос к этой базе, берет номер комнаты как имя пользователя для User Manager и фамилию гостя как пароль. Как только гость заезжает, сервис обновляет пользователя User Manager с соответствующим номером комнаты.

    Персоналу отеля не нужно вручную поддерживать пользователей в User Manager или создавать ваучеры для гостей. Сервис может подключаться к любой базе данных с поддержкой JDBC-драйвера, либо использовать CSV-файл в качестве источника имени пользователя и пароля с помощью открытого драйвера CSVJDBC. Подключение к Mikrotik User Manager происходит через API-сервис.

    Пример конфигурации выглядит так:

    spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver  # JDBC-драйвер (в данном случае MS SQL Server)  
    spring.datasource.url=jdbc:sqlserver://server;databaseName=HOTEL  # URL подключения к базе данных  
    spring.datasource.username=sa  # имя пользователя базы данных  
    spring.datasource.password=password  # пароль базы данных  

    data.query=select room as username, surname as password from guests  # выполняемый SQL-запрос  

    update.rate=* 0/5 * * * ?  # расписание обновления в формате CRON (здесь — каждые 5 минут)  

    hotspot.address=192.168.0.1  # IP-адрес устройства Mikrotik  
    hotspot.user=admin  # пользователь API Mikrotik  
    hotspot.password=password  # пароль пользователя API Mikrotik  
    hotspot.port=8728  # порт API Mikrotik  
    hotspot.customer=admin  # клиент User Manager  
    hotspot.profile=default  # профиль, назначаемый новым пользователям  

    hotspot.remove=true  # опция удаления неиспользуемых пользователей  
    hotspot.remove.skip=  # список профилей пользователей, которые не удалять  

    SQL-запрос должен возвращать столбец username (имя пользователя) и столбец password (пароль). Опционально он может возвращать и столбец profile с названием профиля User Manager, который будет назначен новому пользователю.

    В приведенном примере запрашивается таблица guests, где номер комнаты используется как имя пользователя, фамилия — как пароль. Профиль не возвращается, поэтому берется из параметра “hotspot.profile=…”. Имя пользователя должно быть уникальным в результатах запроса.

    При запуске обновления сервис проверяет, нет ли уже пользователя с таким username в User Manager. Если пользователя нет — создает нового. Если есть — сверяет пароли: если они совпадают, пользователь остается без изменений, если отличаются — старый пользователь удаляется, создается новый с тем же username и новым паролем.

    Если включена опция hotspot.remove, сервис удаляет всех пользователей в User Manager, которые не появились в результате запросе, за исключением пользователей с профилями, указанными в hotspot.remove.skip.

    В итоге, когда гость регистрируется, ему вместе с ключом от номера выдают карточку, где написано: для доступа в интернет имя пользователя — это номер комнаты, а пароль — фамилия гостя. Мы используем систему именно так, но запрос и база данных могут быть любыми, и сервис подойдет для разных сценариев.

    Сервис написан на Java, требует установленной Java Runtime версии 1.7 и выше. В комплекте есть обертка для установки в качестве службы Windows. Он также работает на любой ОС с поддержкой Java (Linux, Mac, что угодно), так как представляет собой самодостаточный jar-файл, который запускается командой java -jar HotSpotAuto.jar.

    В комплекте прилагается файл README:

    Использование: распакуйте в папку. Поместите JDBC-драйвер вашей базы данных в подпапку lib. Отредактируйте application.properties под свои настройки. Для теста в комплекте есть драйвер CSVJDBC, пример данных в папке data и интервал обновления установлен на 2 минуты. Просто настройте параметры hotspot.* под свой Mikrotik.

    Логи работы можно найти в файле log\hotspotauto.log, где отображаются созданные/удалённые пользователи и возможные ошибки.

    Команды для службы Windows:  
    Установить службу: HotSpotAuto.exe install  
    Запустить службу: HotSpotAuto.exe start  
    Остановить службу: HotSpotAuto.exe stop  
    Удалить службу: HotSpotAuto.exe uninstall  

    Для запуска без установки службы: java -jar HotSpotAuto-1.0.jar
     
     
     
    seriousreal
    Guest
    #2
    0
    19.06.2017 00:43:00
    Привет, мне интересно узнать больше про Infinitel Hotspot Auto. Как можно скачать для тестирования?.. Я ищу именно такое решение для использования в отеле… Пожалуйста, помогите… Спасибо. Эрнест.
     
     
     
    pribasv
    Guest
    #3
    0
    22.06.2017 16:20:00
    Вы можете скачать это по ссылке: http://www.infinitel.es/inicio/hostpot/infinitel-hotspotauto Вы можете скачать и протестировать перед покупкой.
     
     
     
    learnyee
    Guest
    #4
    0
    28.01.2019 10:43:00
    Окей, пытался скачать с указанного сайта, но, похоже, там нет ссылки на файл. Поможешь?
     
     
     
    pribasv
    Guest
    #5
    0
    28.01.2019 10:53:00
    Ссылка для скачивания доступна только на испанской версии этой страницы. Извините за неудобства. Вместо этого используйте прямую ссылку: https://www.infinitel.es/software/HotSpotAuto.rar
     
     
     
    learnyee
    Guest
    #6
    0
    28.01.2019 17:51:00
    Окей, получил файл, позже сегодня проведу несколько тестов. Просто быстро уточню: после того, как ты делаешь запрос к внешней базе данных и получаешь результат, перед тем как записывать эти данные в базу User Manager, ты проверяешь, существует ли уже такой username в User Manager? Например, в текущем Userman есть username: Room1 и пароль Jonathan, а в результате из внешней базы появляется запись с username: Room1 и паролем David. Как ты с этим поступаешь? Перезаписываешь?
     
     
     
    pribasv
    Guest
    #7
    0
    28.01.2019 18:23:00
    Сервис сравнивает все записи, полученные из запроса, и работает в следующих случаях: пользователя нет — он создаётся в User Manager; пользователь уже есть, но пароль отличается — его заменяют новой записью в User Manager; пользователь есть, и пароль тот же — запись в User Manager остаётся без изменений; пользователь есть в User Manager, но отсутствует в результатах запроса — его удаляют из User Manager. Короче говоря, сервис старается синхронизировать содержимое запроса со списком пользователей в User Manager. Чтобы избежать такого поведения для некоторых пользователей, можно вручную создать пользователя в User Manager и назначить ему профиль «skip» (например, user: receptionist pass:12345). Имя профиля для игнорируемых пользователей задаётся в файле настроек. Обычно для обычных пользователей используется профиль по умолчанию, а для тех, кого нужно сохранить во время синхронизации — профиль с названием «skip».
     
     
     
    learnyee
    Guest
    #8
    0
    31.01.2019 08:30:00
    hotspotauto.log (31,7 КБ) Окей, валится куча ошибок… мне нужна какая-то определённая версия J2RE для запуска?
     
     
     
    pribasv
    Guest
    #9
    0
    31.01.2019 09:01:00
    Вы установили его как службу? Если нет, какую команду вы используете для запуска? Проблема в том, что не удается загрузить драйвер csvjdbc.
     
     
     
    learnyee
    Guest
    #10
    0
    31.01.2019 09:26:00
    Я просто дважды кликаю по jar-файлу, чтобы запустить его.
     
     
     
    learnyee
    Guest
    #11
    0
    31.01.2019 09:35:00
    Окей, я попробовал запустить программу снова, как ты сказал, но способ с HotspotAuto.exe вообще ничего не показывает, даже лог не создаётся. Запустил через командную строку java -jar HotSpotAuto-1.0.jar — та же история.
     
     
     
    learnyee
    Guest
    #12
    0
    31.01.2019 09:42:00
    Похоже, ошибка началась с «Injection of autowired dependencies failed». В принципе, сейчас я особо ничего сделать не могу. Я бы посоветовал тебе попробовать запустить это на свежесобранном компьютере; если заработает, дай знать, что делать дальше.
     
     
     
    pribasv
    Guest
    #13
    0
    31.01.2019 10:10:00
    Чтобы запустить программу напрямую без установки сервиса, нужно использовать: hotspotauto.exe -run. Этот исполняемый файл — оболочка для сервиса, поэтому вызов без параметров ничего не сделает. Если вы хотите запускать её напрямую из java.exe, придется вручную указать все зависимости в командной строке.  

    Если требуется использовать подключение к базе данных, нужно скопировать jdbc драйвер для вашей СУБД в папку lib и изменить application.properties:  
    spring.datasource.driverClassName=[ваш драйвер]
    spring.datasource.url=[ваш jdbc url]
    spring.datasource.username=[пользователь базы данных]
    spring.datasource.password=[пароль пользователя базы данных]

    В application.properties есть пример настройки для MySQL (закомментирован):  
    # Пример использования MySQL  
    # spring.datasource.url=jdbc:mysql://localhost/mydb  
    # spring.datasource.username=user  
    # spring.datasource.password=password  
    # spring.datasource.driverClassName=com.mysql.jdbc.Driver  
    # Конец примера использования MySQL  

    Обратите внимание, что версия RouterOS 6.43.xx сейчас несовместима. Эта проблема скоро будет исправлена, но пока обязательно тестируйте приложение на устройстве с версией 6.42.xx или ниже.
     
     
     
    learnyee
    Guest
    #14
    0
    31.01.2019 10:42:00
    Окей, теперь всё работает, но заметил следующую проблему: когда импорт идёт из твоего файла, процесс импорта как бы зависает на полпути из-за какой-то ошибки. Это происходит, если в менеджере пользователей уже есть заранее созданные аккаунты. Единственный способ решить — удалить всех пользователей, тогда импорт продолжится. Ещё заметил ошибку при завершении программы (через Ctrl+C), показывается какая-то ошибка, связанная, судя по всему, с состоянием подключения к API MikroTik. Прикрепил лог.

    В моём случае я работаю с двумя большими блоками отеля, в которых примерно 400 комнат, так что не могу позволить себе, чтобы процесс импорта застревал на полпути и приходилось удалять всех пользователей. Честно говоря, не знаю, что будет, если сделать это, пока отельные гости уже подключены к хотспоту. hotspotauto.log (126 KB)
     
     
     
    learnyee
    Guest
    #15
    0
    31.01.2019 10:46:00
    Чёрт, похоже, эти ошибки из-за того, что у меня на устройстве прошивка 6.43.x, нужно будет найти стабильную версию 6.42.x. Ладно, мне интересна твоя работа, можешь написать мне в личку, чтобы обсудить цены?
     
     
     
    pribasv
    Guest
    #16
    0
    31.01.2019 11:08:00
    В логе указано, что у вас версия 1.3, а она уже устарела. Я загрузил версию 1.6. Используйте тот же самый ссылку для скачивания. Цены можно посмотреть на https://wifi.tienda/15-hotspots. Указанные цены — это конечные цены для пользователей, установщики могут оформить заявку на скидки.
     
     
     
    learnyee
    Guest
    #17
    0
    02.02.2019 15:54:00
    Последний вопрос: так как ваш сайт не на английском, мне интересно — при покупке программы лицензия действует только на один терминал или я могу использовать один и тот же лицензионный код на нескольких терминалах/для нескольких клиентов?
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры