Mercurial > hg > orthanc
diff OrthancServer/Plugins/Engine/OrthancPlugins.cpp @ 4343:e1e918e790e8
New function in the SDK: OrthancPluginGenerateRestApiAuthorizationToken()
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 04 Dec 2020 18:28:23 +0100 |
parents | a01b1c9cbef4 |
children | d527a081f92d |
line wrap: on
line diff
--- a/OrthancServer/Plugins/Engine/OrthancPlugins.cpp Thu Dec 03 18:48:06 2020 +0100 +++ b/OrthancServer/Plugins/Engine/OrthancPlugins.cpp Fri Dec 04 18:28:23 2020 +0100 @@ -918,6 +918,7 @@ RefreshMetricsCallbacks refreshMetricsCallbacks_; StorageCommitmentScpCallbacks storageCommitmentScpCallbacks_; std::unique_ptr<StorageAreaFactory> storageArea_; + std::set<std::string> authorizationTokens_; boost::recursive_mutex restCallbackMutex_; boost::recursive_mutex storedCallbackMutex_; @@ -4647,6 +4648,18 @@ return true; } + case _OrthancPluginService_GenerateRestApiAuthorizationToken: + { + const _OrthancPluginRetrieveDynamicString& p = + *reinterpret_cast<const _OrthancPluginRetrieveDynamicString*>(parameters); + const std::string token = Toolbox::GenerateUuid(); + + pimpl_->authorizationTokens_.insert(token); + *p.result = CopyString("Bearer " + token); + + return true; + } + default: { // This service is unknown to the Orthanc plugin engine @@ -5257,4 +5270,11 @@ return false; } + + + bool OrthancPlugins::IsValidAuthorizationToken(const std::string& token) const + { + boost::recursive_mutex::scoped_lock lock(pimpl_->invokeServiceMutex_); + return (pimpl_->authorizationTokens_.find(token) != pimpl_->authorizationTokens_.end()); + } }