[X2Go-Dev] [X2Go-Commits] [x2goclient] 01/01: Client now sends "login" parameter to the broker when executing task "selectsession". Before client just sent a username on the broker and it was imposiible to find out user name on X2Go server, which is not always the same as broker username. This won't break a compatibility with previous broker as they just will ignore this parameter.

Oleksandr Shneyder o.shneyder at phoca-gmbh.de
Wed Nov 28 17:03:52 CET 2018


Hi Mike,

this parameter is needed for the case if brokeruser and x2gouser are not
same. Until this commit X2Go client only sent broker login to the
broker, and not login name on x2go server.
So if you are connecting to broker with name user1 and after this you
want to connect to x2go server as user2, it was impossible to find out
the list of sessions running for user2 on x2go server. Now X2Go client
sends both logins (on broker and on x2go server).
There are plenty use cases, where this information can be used. Another
case when several broker users sharing same accounts on x2go servers. In
this case you can track connection between X2Go Users and Broker Users.

Anyway this should not brake any previous setups. X2Go Broker should
just ignore arguments which are not supported.

Regards
Alex

Am 28.11.2018 um 16:13 schrieb Mike Gabriel:
> Hi Alex,
> 
> please explain the reasoning behind this API change in the SSH broker call.
> 
> This commit currently breaks SSH brokerage in X2Go Session Broker and I
> would like to fix it.
> 
> So, what do you intend with the additional --login option? How is the
> broker supposed to react?
> 
> Mike
> 
> On  Mi 05 Sep 2018 14:25:44 CEST, git-admin wrote:
> 
>> This is an automated email from the git hooks/post-receive script.
>>
>> x2go pushed a commit to branch master
>> in repository x2goclient.
>>
>> commit e7e74df029a1bd7d86a03c7f72f5b555eb6c5b0e
>> Author: Oleksandr Shneyder <o.shneyder at phoca-gmbh.de>
>> Date:   Wed Sep 5 14:25:33 2018 +0200
>>
>>     Client now sends "login" parameter to the broker when executing
>> task "selectsession". Before client just sent a username on the broker
>> and it was imposiible to find out user name on X2Go server, which is
>> not always the same as broker username. This won't break a
>> compatibility with previous broker as they just will ignore this
>> parameter.
>> ---
>>  debian/changelog         |  5 +++++
>>  src/httpbrokerclient.cpp | 23 +++++++++++++++--------
>>  src/httpbrokerclient.h   |  2 +-
>>  src/onmainwindow.cpp     |  2 +-
>>  4 files changed, 22 insertions(+), 10 deletions(-)
>>
>> diff --git a/debian/changelog b/debian/changelog
>> index dc01147..0a43c2d 100644
>> --- a/debian/changelog
>> +++ b/debian/changelog
>> @@ -17,6 +17,11 @@ x2goclient (4.1.2.2-0x2go1) UNRELEASED; urgency=medium
>>      - Broker can send to client command to suspend or terminate the
>> session as an
>>        answer to the client event message. For this broker should send
>> to client
>>        SUSPEND ID or TERMINATE ID.
>> +    - Client now sends "login" parameter to the broker when executing
>> task
>> +      "selectsession". Before client just sent a username on the
>> broker and it was
>> +      imposiible to find out user name on X2Go server, which is not
>> always the
>> +      same as broker username. This won't break a compatibility with
>> previous
>> +      broker as they just will ignore this parameter.
>>
>>    [ Mihai Moldovan ]
>>    * New upstream version (4.1.2.2):
>> diff --git a/src/httpbrokerclient.cpp b/src/httpbrokerclient.cpp
>> index 6110866..02a69c9 100644
>> --- a/src/httpbrokerclient.cpp
>> +++ b/src/httpbrokerclient.cpp
>> @@ -313,9 +313,9 @@ void HttpBrokerClient::getUserSessions()
>>      }
>>  }
>>
>> -void HttpBrokerClient::selectUserSession(const QString& session)
>> +void HttpBrokerClient::selectUserSession(const QString& session,
>> const QString& loginName)
>>  {
>> -    x2goDebug<<"Called selectUserSession for session "<<session<<".";
>> +    x2goDebug<<"Called selectUserSession for session "<<session<<",
>> "<<"loginName "<<loginName;
>>      QString brokerUser=config->brokerUser;
>>      if(mainWindow->getUsePGPCard())
>>          brokerUser=mainWindow->getCardLogin();
>> @@ -329,6 +329,10 @@ void HttpBrokerClient::selectUserSession(const
>> QString& session)
>>                              
>> "user="<<QUrl::toPercentEncoding(brokerUser)<<"&"<<
>>                              
>> "password="<<QUrl::toPercentEncoding(config->brokerPass)<<"&"<<
>>                               "authid="<<nextAuthId;
>> +        if(loginName.length()>0)
>> +        {
>> +            QTextStream ( &req )
>> <<"&login="<<QUrl::toPercentEncoding(loginName);
>> +        }
>>          x2goDebug << "Sending request: "<< req.toUtf8();
>>          QNetworkRequest request(QUrl(config->brokerurl));
>>          request.setHeader(QNetworkRequest::ContentTypeHeader,
>> "application/x-www-form-urlencoded");
>> @@ -337,13 +341,16 @@ void HttpBrokerClient::selectUserSession(const
>> QString& session)
>>      }
>>      else
>>      {
>> -        if (nextAuthId.length() > 0) {
>> -            sshConnection->executeCommand ( config->sshBrokerBin+"
>> --user "+ brokerUser +" --authid "+nextAuthId+ " --task selectsession
>> --sid \""+session+"\"",
>> -                                            this,SLOT (
>> slotSelectSession(bool,QString,int)));
>> -        } else {
>> -            sshConnection->executeCommand ( config->sshBrokerBin+"
>> --user "+ brokerUser +" --task selectsession --sid \""+session+"\"",
>> -                                            this,SLOT (
>> slotSelectSession(bool,QString,int)));
>> +        QString sshCmd=config->sshBrokerBin+" --user "+ brokerUser +
>> " --task selectsession --sid \""+session+"\"";
>> +        if(nextAuthId.length() > 0)
>> +        {
>> +            sshCmd+=" --authid "+nextAuthId;
>> +        }
>> +        if(loginName.length() > 0)
>> +        {
>> +            sshCmd+=" --login " + loginName;
>>          }
>> +        sshConnection->executeCommand (sshCmd, this,SLOT (
>> slotSelectSession(bool,QString,int)));
>>      }
>>
>>  }
>> diff --git a/src/httpbrokerclient.h b/src/httpbrokerclient.h
>> index 24f52f3..73ae2ef 100644
>> --- a/src/httpbrokerclient.h
>> +++ b/src/httpbrokerclient.h
>> @@ -41,7 +41,7 @@ class HttpBrokerClient: public QObject
>>  public:
>>      HttpBrokerClient ( ONMainWindow* wnd, ConfigFile* cfg );
>>      ~HttpBrokerClient();
>> -    void selectUserSession(const QString& session );
>> +    void selectUserSession(const QString& session, const QString&
>> loginName);
>>      void changePassword(QString newPass);
>>      void testConnection();
>>      void closeSSHInteractionDialog();
>> diff --git a/src/onmainwindow.cpp b/src/onmainwindow.cpp
>> index 8aa5078..52e765c 100644
>> --- a/src/onmainwindow.cpp
>> +++ b/src/onmainwindow.cpp
>> @@ -3325,7 +3325,7 @@ void ONMainWindow::slotSessEnter()
>>              return;
>>          }
>>  #endif
>> -       
>> broker->selectUserSession(sessionExplorer->getLastSession()->id());
>> +       
>> broker->selectUserSession(sessionExplorer->getLastSession()->id(),login->text());
>>
>>          config.session=sessionExplorer->getLastSession()->id();
>>          setStatStatus ( tr ( "Connecting to broker" ) );
>>          stInfo->insertPlainText ( "broker url: "+config.brokerurl );
>>
>> -- 
>> Alioth's
>> /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on
>> /srv/git/code.x2go.org/x2goclient.git
>> _______________________________________________
>> x2go-commits mailing list
>> x2go-commits at lists.x2go.org
>> https://lists.x2go.org/listinfo/x2go-commits
> 
> 
> 
> 
> _______________________________________________
> x2go-dev mailing list
> x2go-dev at lists.x2go.org
> https://lists.x2go.org/listinfo/x2go-dev
> 


-- 
-----------------------------------------------------------
Oleksandr Shneyder        | Email: o.shneyder at phoca-gmbh.de
phoca GmbH                | Tel. : 0911 - 14870374 0
Schleiermacherstr. 2      | Fax. : 0911 - 14870374 9
D-90491 Nürnberg          | Mobil: 0163 - 49 64 461

Geschäftsführung:
Dipl.-Inf. Oleksandr Shneyder

Amtsgericht München | http://www.phoca-gmbh.de
HRB 196 658         | http://www.x2go.org
USt-IdNr.: DE281977973
-----------------------------------------------------------

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.x2go.org/pipermail/x2go-dev/attachments/20181128/5e03c888/attachment-0001.sig>


More information about the x2go-dev mailing list