В настоящее время я работаю над проектом, включающим прямую аутентификацию на сервере RADIUS с использованием Java и Python.
Моя реализация на Python работает нормально, однако я пробовал две библиотеки Java (TinyRADIUS и JRaD), и обе ведут себя одинаково:
При отправке запроса PAP все символы в пароле после первых 16 кажутся либо зашифрованными, либо кодированными наполовину UTF, что приводит к сбою аутентификации сервера.
Смотри ниже:
JRaDclient rc = new JRaDclient();
rc.setSecretKey("secrets");
rc.setServer("127.0.0.1", 1812);
rc.authenticate("testuser", "pass123LogeuCcoboJKidoDeVFesekSoluneCgaLttrjhrkrhn");
Однако результирующий запрос на сервере становится таким
rad_recv: Access-Request packet from host 127.0.0.1 port 1337, id=210, length=96
User-Name = "testuser"
User-Password = "pass123LogeuCcob\275\213?\353\210\352A1\333mP\266\253P[h\234zL\3021/\373\001\334\032\263\033BuKM\022\t\233\261r\301\3035
6\267\333+W'b\221"
Это одновременная проблема с библиотеками или просто проблема с конфигурацией/версией Radius?
Для справки: это работает на Java 8 с FreeRADIUS v2.1.12.
JRaD: https://github.com/punyal/JRaD TinyRADIUS: http://tinyradius.sourceforge.net/