comparison 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
comparison
equal deleted inserted replaced
4342:52166629239f 4343:e1e918e790e8
916 IncomingHttpRequestFilters2 incomingHttpRequestFilters2_; 916 IncomingHttpRequestFilters2 incomingHttpRequestFilters2_;
917 IncomingDicomInstanceFilters incomingDicomInstanceFilters_; 917 IncomingDicomInstanceFilters incomingDicomInstanceFilters_;
918 RefreshMetricsCallbacks refreshMetricsCallbacks_; 918 RefreshMetricsCallbacks refreshMetricsCallbacks_;
919 StorageCommitmentScpCallbacks storageCommitmentScpCallbacks_; 919 StorageCommitmentScpCallbacks storageCommitmentScpCallbacks_;
920 std::unique_ptr<StorageAreaFactory> storageArea_; 920 std::unique_ptr<StorageAreaFactory> storageArea_;
921 std::set<std::string> authorizationTokens_;
921 922
922 boost::recursive_mutex restCallbackMutex_; 923 boost::recursive_mutex restCallbackMutex_;
923 boost::recursive_mutex storedCallbackMutex_; 924 boost::recursive_mutex storedCallbackMutex_;
924 boost::recursive_mutex changeCallbackMutex_; 925 boost::recursive_mutex changeCallbackMutex_;
925 boost::mutex findCallbackMutex_; 926 boost::mutex findCallbackMutex_;
4645 ServerToolbox::ReconstructMainDicomTags(*pimpl_->database_, storage, Plugins::Convert(p.level)); 4646 ServerToolbox::ReconstructMainDicomTags(*pimpl_->database_, storage, Plugins::Convert(p.level));
4646 4647
4647 return true; 4648 return true;
4648 } 4649 }
4649 4650
4651 case _OrthancPluginService_GenerateRestApiAuthorizationToken:
4652 {
4653 const _OrthancPluginRetrieveDynamicString& p =
4654 *reinterpret_cast<const _OrthancPluginRetrieveDynamicString*>(parameters);
4655 const std::string token = Toolbox::GenerateUuid();
4656
4657 pimpl_->authorizationTokens_.insert(token);
4658 *p.result = CopyString("Bearer " + token);
4659
4660 return true;
4661 }
4662
4650 default: 4663 default:
4651 { 4664 {
4652 // This service is unknown to the Orthanc plugin engine 4665 // This service is unknown to the Orthanc plugin engine
4653 return false; 4666 return false;
4654 } 4667 }
5255 } 5268 }
5256 } 5269 }
5257 5270
5258 return false; 5271 return false;
5259 } 5272 }
5273
5274
5275 bool OrthancPlugins::IsValidAuthorizationToken(const std::string& token) const
5276 {
5277 boost::recursive_mutex::scoped_lock lock(pimpl_->invokeServiceMutex_);
5278 return (pimpl_->authorizationTokens_.find(token) != pimpl_->authorizationTokens_.end());
5279 }
5260 } 5280 }