При подключении к СУБД PostgreSQL из java-приложения через jdbc-драйвер значение ac_session_maclabel всегда {0,0}. В pgadmin3 и psql, запущенных в той же самой сессии, значение верное — {2,0}.
Тестовый стенд — 3 машины (ald-сервер, сервер БД, клиент). ОС — АстраЛинукс Смоленск 1.6 со всеми обновлениями. Сервер БД и клиент внесены в домен ALD. Вход выполняется от имени пользователя, зарегистрированного в ALD.
JRE использовалась от Oracle, AdoptOpenJDK и ГосJava. JDBC-драйвер — из состава ГосJava. В качестве java-приложения выступали dbeaver и jdbcsql. Во всех случаях результат одинаковый. По проблеме создан багрепорт :
https://bt.astralinux.ru/view.php?id=493
Разработчики ОС АстраЛинукс в настоящий момент занимаются этой проблемой, но попросили о ней уведомить разработчиков java для защищённых систем, то есть вас. Возможно, вы сможете прояснить ситуацию и дать рекомендации по решению проблемы.
Небольшое дополнение. Если сервер БД исключён из домена ALD и уровни доступа прописаны локально через pdpl-user, то всё работает. Запрос select current_setting(‘ac_session_maclabel’), запущенный из java-приложения, возвращает верное значение. Проблема возникает если сервер БД включён в домен и уровни доступа должны браться с сервера ALD.
Принципал СУБД в группе mac? Подключение по GSS API?
Да, принципал в группе mac, подключение по gssapi тоже настроено. Но из java используется обычное подключение по логину/паролю
А вы уверены, что пользователь авторизуется как доменный?
Да, разумеется. Привожу список пакетов, вывод команды strace -f запуска sqljdbc и скриншот. Пользователь testuser зарегистрирован в домена ALD и не является локальным, домашний каталог монтируется по cifs
Приложить файлы к сообщению не получилось, пришлось выложить на яндекс диск.
https://yadi.sk/d/k9BNoiBmsWAIWA
Мы проводим тестирование ГосJava с ненулевой мандатной меткой. Нужно больше подробностей, что вы запускаете и как.