mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-05-29 08:59:54 +02:00
Merge pull request #7418 from birarda/ds-uuid-cookie
fix a crash in DS and remove storage of cookie UUIDs to disk
This commit is contained in:
commit
59b043d803
1 changed files with 9 additions and 22 deletions
|
@ -103,8 +103,6 @@ DomainServer::DomainServer(int argc, char* argv[]) :
|
||||||
qDebug() << "Setting up LimitedNodeList and assignments.";
|
qDebug() << "Setting up LimitedNodeList and assignments.";
|
||||||
setupNodeListAndAssignments();
|
setupNodeListAndAssignments();
|
||||||
|
|
||||||
loadExistingSessionsFromSettings();
|
|
||||||
|
|
||||||
// setup automatic networking settings with data server
|
// setup automatic networking settings with data server
|
||||||
setupAutomaticNetworking();
|
setupAutomaticNetworking();
|
||||||
|
|
||||||
|
@ -681,7 +679,12 @@ unsigned int DomainServer::countConnectedUsers() {
|
||||||
}
|
}
|
||||||
|
|
||||||
QUrl DomainServer::oauthRedirectURL() {
|
QUrl DomainServer::oauthRedirectURL() {
|
||||||
return QString("https://%1:%2/oauth").arg(_hostname).arg(_httpsManager->serverPort());
|
if (_httpsManager) {
|
||||||
|
return QString("https://%1:%2/oauth").arg(_hostname).arg(_httpsManager->serverPort());
|
||||||
|
} else {
|
||||||
|
qWarning() << "Attempting to determine OAuth re-direct URL with no HTTPS server configured.";
|
||||||
|
return QUrl();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const QString OAUTH_CLIENT_ID_QUERY_KEY = "client_id";
|
const QString OAUTH_CLIENT_ID_QUERY_KEY = "client_id";
|
||||||
|
@ -1642,10 +1645,11 @@ bool DomainServer::isAuthenticatedRequest(HTTPConnection* connection, const QUrl
|
||||||
// add it to the set so we can handle the callback from the OAuth provider
|
// add it to the set so we can handle the callback from the OAuth provider
|
||||||
_webAuthenticationStateSet.insert(stateUUID);
|
_webAuthenticationStateSet.insert(stateUUID);
|
||||||
|
|
||||||
QUrl oauthRedirectURL = oauthAuthorizationURL(stateUUID);
|
QUrl authURL = oauthAuthorizationURL(stateUUID);
|
||||||
|
|
||||||
Headers redirectHeaders;
|
Headers redirectHeaders;
|
||||||
redirectHeaders.insert("Location", oauthRedirectURL.toEncoded());
|
|
||||||
|
redirectHeaders.insert("Location", authURL.toEncoded());
|
||||||
|
|
||||||
connection->respond(HTTPConnection::StatusCode302,
|
connection->respond(HTTPConnection::StatusCode302,
|
||||||
QByteArray(), HTTPConnection::DefaultContentType, redirectHeaders);
|
QByteArray(), HTTPConnection::DefaultContentType, redirectHeaders);
|
||||||
|
@ -1723,7 +1727,6 @@ QNetworkReply* DomainServer::profileRequestGivenTokenReply(QNetworkReply* tokenR
|
||||||
return NetworkAccessManager::getInstance().get(profileRequest);
|
return NetworkAccessManager::getInstance().get(profileRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
const QString DS_SETTINGS_SESSIONS_GROUP = "web-sessions";
|
|
||||||
Headers DomainServer::setupCookieHeadersFromProfileReply(QNetworkReply* profileReply) {
|
Headers DomainServer::setupCookieHeadersFromProfileReply(QNetworkReply* profileReply) {
|
||||||
Headers cookieHeaders;
|
Headers cookieHeaders;
|
||||||
|
|
||||||
|
@ -1737,10 +1740,6 @@ Headers DomainServer::setupCookieHeadersFromProfileReply(QNetworkReply* profileR
|
||||||
DomainServerWebSessionData sessionData(userObject);
|
DomainServerWebSessionData sessionData(userObject);
|
||||||
_cookieSessionHash.insert(cookieUUID, sessionData);
|
_cookieSessionHash.insert(cookieUUID, sessionData);
|
||||||
|
|
||||||
// persist the cookie to settings file so we can get it back on DS relaunch
|
|
||||||
QStringList path = QStringList() << DS_SETTINGS_SESSIONS_GROUP << cookieUUID.toString();
|
|
||||||
Setting::Handle<QVariant>(path).set(QVariant::fromValue(sessionData));
|
|
||||||
|
|
||||||
// setup expiry for cookie to 1 month from today
|
// setup expiry for cookie to 1 month from today
|
||||||
QDateTime cookieExpiry = QDateTime::currentDateTimeUtc().addMonths(1);
|
QDateTime cookieExpiry = QDateTime::currentDateTimeUtc().addMonths(1);
|
||||||
|
|
||||||
|
@ -1757,18 +1756,6 @@ Headers DomainServer::setupCookieHeadersFromProfileReply(QNetworkReply* profileR
|
||||||
return cookieHeaders;
|
return cookieHeaders;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DomainServer::loadExistingSessionsFromSettings() {
|
|
||||||
// read data for existing web sessions into memory so existing sessions can be leveraged
|
|
||||||
Settings domainServerSettings;
|
|
||||||
domainServerSettings.beginGroup(DS_SETTINGS_SESSIONS_GROUP);
|
|
||||||
|
|
||||||
foreach(const QString& uuidKey, domainServerSettings.childKeys()) {
|
|
||||||
_cookieSessionHash.insert(QUuid(uuidKey),
|
|
||||||
domainServerSettings.value(uuidKey).value<DomainServerWebSessionData>());
|
|
||||||
qDebug() << "Pulled web session from settings - cookie UUID is" << uuidKey;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void DomainServer::refreshStaticAssignmentAndAddToQueue(SharedAssignmentPointer& assignment) {
|
void DomainServer::refreshStaticAssignmentAndAddToQueue(SharedAssignmentPointer& assignment) {
|
||||||
QUuid oldUUID = assignment->getUUID();
|
QUuid oldUUID = assignment->getUUID();
|
||||||
assignment->resetUUID();
|
assignment->resetUUID();
|
||||||
|
|
Loading…
Reference in a new issue