Add WebAPI session timeout settings

Raise default timeout to 1 hour.
This commit is contained in:
Chocobo1 2019-06-13 22:43:34 +08:00
parent a65f36592a
commit 89124bdcc8
No known key found for this signature in database
GPG key ID: 210D9C873253A68C
8 changed files with 132 additions and 64 deletions

View file

@ -29,6 +29,7 @@
#pragma once
#include <QDateTime>
#include <QElapsedTimer>
#include <QHash>
#include <QObject>
#include <QRegularExpression>
@ -48,26 +49,23 @@ class APIController;
class WebApplication;
constexpr char C_SID[] = "SID"; // name of session id cookie
constexpr int INACTIVE_TIME = 900; // Session inactive time (in secs = 15 min.)
class WebSession : public ISession
{
friend class WebApplication;
public:
explicit WebSession(const QString &sid);
QString id() const override;
qint64 timestamp() const;
bool hasExpired(qint64 seconds) const;
void updateTimestamp();
QVariant getData(const QString &id) const override;
void setData(const QString &id, const QVariant &data) override;
private:
void updateTimestamp();
const QString m_sid;
qint64 m_timestamp;
QElapsedTimer m_timer; // timestamp
QVariantHash m_data;
};
@ -148,6 +146,7 @@ private:
bool m_isLocalAuthEnabled;
bool m_isAuthSubnetWhitelistEnabled;
QList<Utils::Net::Subnet> m_authSubnetWhitelist;
int m_sessionTimeout;
// security related
QStringList m_domainList;