24 #include <QMutexLocker>
29 #include "SignOn/signonplugincommon.h"
31 using namespace SignOn;
33 namespace SsoTestPluginNS {
36 static bool is_canceled =
false;
38 SsoTestPlugin::SsoTestPlugin(QObject *parent):
39 AuthPluginInterface(parent)
43 m_type = QLatin1String(
"ssotest");
44 m_mechanisms = QStringList(QLatin1String(
"mech1"));
45 m_mechanisms += QLatin1String(
"mech2");
46 m_mechanisms += QLatin1String(
"mech3");
47 m_mechanisms += QLatin1String(
"BLOB");
49 qRegisterMetaType<SignOn::SessionData>(
"SignOn::SessionData");
59 QMutexLocker locker(&mutex);
67 const QString &mechanism)
70 QString message = QLatin1String(
"The given mechanism is unavailable");
72 emit error(Error(Error::MechanismNotAvailable, message));
76 QMetaObject::invokeMethod(
this,
79 Q_ARG(SignOn::SessionData, inData),
80 Q_ARG(QString, mechanism));
83 void SsoTestPlugin::execProcess(
const SignOn::SessionData &inData,
84 const QString &mechanism)
86 SignOn::SessionData outData(inData);
87 outData.setRealm(
"testRealm_after_test");
89 for (
int i = 0; i < 10; i++)
91 TRACE() <<
"Signal is sent";
92 emit statusChanged(PLUGIN_STATE_WAITING,
93 QLatin1String(
"hello from the test plugin"));
94 usleep(0.1 * 1000000);
98 TRACE() <<
"Operation is canceled";
99 QMutexLocker locker(&mutex);
101 emit error(Error(Error::SessionCanceled,
102 QLatin1String(
"The operation is canceled")));
106 if (mechanism == QLatin1String(
"BLOB")) {
107 emit result(outData);
111 foreach(QString key, outData.propertyNames())
112 TRACE() << key <<
": " << outData.getProperty(key);
114 if (mechanism == QLatin1String(
"mech1")) {
115 emit result(outData);
119 if (mechanism == QLatin1String(
"mech2")) {
120 SignOn::UiSessionData data;
121 data.setQueryPassword(
true);
122 emit userActionRequired(data);
126 emit result(outData);
133 if (data.QueryErrorCode() == QUERY_ERROR_NONE) {
134 SignOn::SessionData response;
135 response.setUserName(data.UserName());
136 response.setSecret(data.Secret());
137 emit result(response);
141 if (data.QueryErrorCode() == QUERY_ERROR_FORBIDDEN)
142 emit error(Error(Error::NotAuthorized,
143 QLatin1String(
"userActionFinished forbidden ")));
145 emit error(Error(Error::UserInteraction,
146 QLatin1String(
"userActionFinished error: ")
147 + QString::number(data.QueryErrorCode())));