Changeset 11153 in ntrip for trunk/BNC/src/bncwindow.cpp


Ignore:
Timestamp:
Oct 31, 2026, 11:50:15 PM (7 days ago)
Author:
stuerze
Message:

Credentials files are implemented, with existing configs keep working unchanged

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/bncwindow.cpp

    r11140 r11153  
    194194  _sslIgnoreErrorsCheckBox->setCheckState(Qt::CheckState(
    195195                                                         settings.value("sslIgnoreErrors").toInt()));
     196  _credentialsFileLineEdit = new QLineEdit(settings.value("credentialsFile").toString());
    196197
    197198  // General Options
    … …  
    828829  pLayout->addWidget(new QLabel("Ignore SSL authorization errors"), 5, 0);
    829830  pLayout->addWidget(_sslIgnoreErrorsCheckBox, 5, 1, 1, 10);
    830   pLayout->addWidget(new QLabel(""), 6, 1);
    831   pLayout->setRowStretch(6, 999);
     831  pLayout->addWidget(new QLabel("Credentials files"), 6, 0);
     832  pLayout->addWidget(_credentialsFileLineEdit, 6, 1, 1, 10);
     833  pLayout->addWidget(new QLabel("Default:  $NETRC or ~/.netrc"), 6, 11, 1, 20);
     834  pLayout->addWidget(new QLabel(""), 7, 1);
     835  pLayout->setRowStretch(7, 999);
    832836
    833837  pgroup->setLayout(pLayout);
    … …  
    15581562  _sslCaCertPathLineEdit->setWhatsThis(tr("<p>Communication with an Ntrip Broadcaster over SSL requires the exchange of server certificates. Specify the path to a directory where you save CA certificates on your system. </p><p>BNC creates from *.crt and *.pem files a CA certificate database, which is used by the socket during the handshake phase to validate the peer's certificate. </p><p>Note that SSL communication is usually done over port 443. <i>[key: sslCaCertPath]</i></p>"));
    15591563  _sslClientCertPathLineEdit->setWhatsThis(tr("<p>Two-sided communication with an Ntrip Broadcaster over SSL requires in addition the exchange of client certificates. Specify the full path to the client certificates on your system.</p><p></p><p>The file naming convention for client certificates in BNC is as follows: &lt;hostname&gt;.&lt;port&gt;.crt for the certificate and &lt;hostname&gt;.&lt;port&gt;.key for the private key, where &lt;hostname&gt; is without https://. </p><p> If available, the client or personal authentication certificate is presented to the peer during the SSL handshake process. Password protected key files are not supported. </p><p>Don't try communication via two sided SSL if you are not sure whether this is supported by the involved Ntrip Broadcaster. </p><p>Note that SSL communication is usually done over port 443. <i>[key: sslClientCertPath]</i></p>"));
     1564  _credentialsFileLineEdit->setWhatsThis(tr("<p>Passwords of Ntrip Broadcasters can be kept in credentials files instead of the configuration file: give the user name without password in the stream's URL (e.g. '//user@products.igs-ip.net:443/SSRA00BKG1') or in the upload settings (empty password). BNC then takes the password from the first matching entry of these files. Streams without user name are retrieved without authentication.</p><p>Two formats are accepted, detected from the file content:<br>netrc: 'machine products.igs-ip.net login user password secret', where the machine may also be given as 'host:port';<br>BNC: one entry per line '&lt;host&gt; &lt;port&gt; &lt;user&gt; &lt;password&gt;', port '*' for any port, user '-' for an entry without user (Ntrip Version 1 upload).</p><p>An entry for the exact port is preferred. Several files can be given, separated by commas; default is the file named in the environment variable NETRC or ~/.netrc. A file readable for other users is not used. A password still given in the configuration file is used as before. <i>[key: credentialsFile]</i></p>"));
    15601565  _sslIgnoreErrorsCheckBox->setWhatsThis(tr("<p>Tick 'Ignore SSL authorization errors' to accept a server certificate that cannot be verified, e.g. a self-signed certificate or one issued for another host name. The connection is then still encrypted, but the server is not authenticated: anybody able to intercept the connection may receive your user name and password and feed in manipulated data. The ignored errors are logged. Better save the CA certificate of the Ntrip Broadcaster in the 'Path to SSL certificates' directory. <i>[key: sslIgnoreErrors]</i></p>"));
    15611566
    … …  
    18741879  delete _sslClientCertPathLineEdit;
    18751880  delete _sslIgnoreErrorsCheckBox;
     1881  delete _credentialsFileLineEdit;
    18761882  delete _logFileLineEdit;
    18771883  delete _rawOutFileLineEdit;
    … …  
    20882094  settings.setValue("sslClientCertPath", _sslClientCertPathLineEdit->text());
    20892095  settings.setValue("sslIgnoreErrors", _sslIgnoreErrorsCheckBox->checkState());
     2096  settings.setValue("credentialsFile", _credentialsFileLineEdit->text());
    20902097
    20912098  QMessageBox msgBox;
    … …  
    24042411  settings.setValue("sslClientCertPath", _sslClientCertPathLineEdit->text());
    24052412  settings.setValue("sslIgnoreErrors", _sslIgnoreErrorsCheckBox->checkState());
     2413  settings.setValue("credentialsFile", _credentialsFileLineEdit->text());
    24062414  // General
    24072415  settings.setValue("logFile", _logFileLineEdit->text());
Note: See TracChangeset for help on using the changeset viewer.