Я пытаюсь реализовать java версию API консоли nmcli
. Я использую клиентский проект dbus- java для запуска вызовов dbus. Теперь я могу перечислить сети или соединения, но когда я хочу управлять соединением вверх или вниз (эквивалент nmcli connection up SSID
) с клиентской библиотекой
NetworkManagerInterface networkManagerInterface = null;
try{
networkManagerInterface = getInstance().getRemoteObject( NetworkManagerInterface._NM_IFACE, NetworkManagerInterface._NM_PATH, NetworkManagerInterface.class );
var result = networkManagerInterface.ActivateConnection( new DBusPath( accessPointProperties.getObjectPath() ), new DBusPath( "/" ), accessPointProperties.getDbusInterface() );
LOGGER.info( "Attempting connection to " + accessPointProperties.SSID() + "; result=" + (result == null ? "(nothing)" : result.getPath()) );
return result != null;
}catch(DBusException e){
LOGGER.error( "Did not get properties:" + e.getMessage() );
return false;
}catch(DBusExecutionException e){
LOGGER.error( "Could not activate connection:" + e.getMessage() );
return false;
}
, я получаю вывод
Feb 03, 2020 14:34:00 ERROR PACKAGE_PATH.dbus.Wifi:492 - Could not activate connection:Sender is not authorized to send message
Команда nmcli connection up SSID
выполняется успешно и без запроса каких-либо учетных данных в терминале.
Это проблема dbus- java или есть учетные данные, которые каким-либо образом используются для NetworkManager