diff --git a/WSRequestHandler.cpp b/WSRequestHandler.cpp
index aae2169e..6689c266 100644
--- a/WSRequestHandler.cpp
+++ b/WSRequestHandler.cpp
@@ -104,6 +104,10 @@ void WSRequestHandler::sendTextMessage(QString textMessage) {
_client->sendTextMessage(textMessage);
}
+bool WSRequestHandler::isAuthenticated() {
+ return _authenticated;
+}
+
WSRequestHandler::~WSRequestHandler() {
if (_requestData != NULL) {
obs_data_release(_requestData);
@@ -140,7 +144,7 @@ void WSRequestHandler::HandleGetVersion(WSRequestHandler *owner) {
obs_data_set_double(data, "version", 1.1);
obs_data_set_string(data, "obs-websocket-version", OBS_WEBSOCKET_VERSION);
//obs_data_set_string(data, "obs-studio-version", OBS_VERSION); // Wrong
-
+
owner->SendOKResponse(data);
obs_data_release(data);
diff --git a/WSRequestHandler.h b/WSRequestHandler.h
index b41051ed..58575475 100644
--- a/WSRequestHandler.h
+++ b/WSRequestHandler.h
@@ -32,6 +32,7 @@ class WSRequestHandler : public QObject
explicit WSRequestHandler(QWebSocket *client);
~WSRequestHandler();
void sendTextMessage(QString textMessage);
+ bool isAuthenticated();
private Q_SLOTS:
void processTextMessage(QString textMessage);
diff --git a/WSServer.cpp b/WSServer.cpp
index f17ec6b2..f78f4e4e 100644
--- a/WSServer.cpp
+++ b/WSServer.cpp
@@ -18,6 +18,7 @@ with this program. If not, see
#include "WSServer.h"
#include "WSRequestHandler.h"
+#include "Config.h"
#include
#include
#include
@@ -54,6 +55,12 @@ WSServer::~WSServer()
void WSServer::broadcast(QString message)
{
Q_FOREACH(WSRequestHandler *pClient, _clients) {
+ if (Config::Current()->AuthRequired == true
+ && pClient->isAuthenticated() == false) {
+ // Skip this client if unauthenticated
+ continue;
+ }
+
pClient->sendTextMessage(message);
}
}