Mike Gabriel
2018-11-28 15:13:32 UTC
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
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
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch master
in repository x2goclient.
commit e7e74df029a1bd7d86a03c7f72f5b555eb6c5b0e
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 ]
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
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
https://lists.x2go.org/listinfo/x2go-commits
x2go pushed a commit to branch master
in repository x2goclient.
commit e7e74df029a1bd7d86a03c7f72f5b555eb6c5b0e
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 ]
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
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
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: ***@das-netzwerkteam.de, http://das-netzwerkteam.de
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: ***@das-netzwerkteam.de, http://das-netzwerkteam.de