Mercurial > hg > orthanc
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 } |