From 7852b1d56bf31a7dbfbdee97ffca1face9016106 Mon Sep 17 00:00:00 2001 From: csoler Date: Sat, 16 Nov 2019 18:19:07 +0100 Subject: [PATCH] fixed interactions between webui and jsonapi in GUI --- src/jsonapi/jsonapi.cpp | 2 +- src/rsserver/p3webui.cc | 10 ++++++++++ src/rsserver/p3webui.h | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/jsonapi/jsonapi.cpp b/src/jsonapi/jsonapi.cpp index 88281a4d7..e8836448b 100644 --- a/src/jsonapi/jsonapi.cpp +++ b/src/jsonapi/jsonapi.cpp @@ -144,7 +144,7 @@ bool RsJsonAPI::parseToken(const std::string& clear_token,std::string& user,std: return false; user = clear_token.substr(0,last_index); - passwd = clear_token.substr(last_index+1,(int)clear_token.size()-(int)last_index-2); + passwd = clear_token.substr(last_index+1,(int)clear_token.size()-(int)last_index-1); return true; } diff --git a/src/rsserver/p3webui.cc b/src/rsserver/p3webui.cc index 65b233328..96279bd0d 100644 --- a/src/rsserver/p3webui.cc +++ b/src/rsserver/p3webui.cc @@ -31,6 +31,7 @@ #include "util/rsthreads.h" #include "util/rsdebug.h" #include "retroshare/rswebui.h" +#include "retroshare/rsjsonapi.h" #define TEXT_HTML 0 #define TEXT_CSS 1 @@ -139,3 +140,12 @@ int p3WebUI::status() const return WEBUI_STATUS_NOT_RUNNING; } +void p3WebUI::setUserPassword(const std::string& passwd) +{ +#ifdef RS_JSONAPI + if(!rsJsonAPI->authorizeUser("webui",passwd)) + std::cerr << "(EE) Cannot register webui token. Some error occurred when calling authorizeUser()" << std::endl; +#else + std::cerr << "(EE) JsonAPI is not available in this buildof Retroshare! Cannot register a user password for the WebUI" << std::endl; +#endif +} diff --git a/src/rsserver/p3webui.h b/src/rsserver/p3webui.h index 6493b6a1e..aaeb7bb7c 100644 --- a/src/rsserver/p3webui.h +++ b/src/rsserver/p3webui.h @@ -38,6 +38,7 @@ public: virtual bool stop() override { return RestbedService::stop();} virtual void setListeningPort(uint16_t port) override { RestbedService::setListeningPort(port) ;} virtual void setBindingAddress(const std::string& address) override { RestbedService::setBindAddress(address) ;} + virtual void setUserPassword(const std::string& passwd) override; virtual int status() const override; virtual std::vector > getResources() const override;