[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.
Mike Gabriel
mike.gabriel at das-netzwerkteam.de
Wed Nov 28 16:13:32 CET 2018
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
--
DAS-NETZWERKTEAM
mike gabriel, herweg 7, 24357 fleckeby
mobile: +49 (1520) 1976 148
landline: +49 (4354) 8390 139
GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22 0782 9AF4 6B30 2577 1B31
mail: mike.gabriel at das-netzwerkteam.de, http://das-netzwerkteam.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 851 bytes
Desc: Digitale PGP-Signatur
URL: <http://lists.x2go.org/pipermail/x2go-dev/attachments/20181128/1c69d2da/attachment.sig>
More information about the x2go-dev
mailing list