comparison Plugin/CachedAuthorizationService.h @ 72:e381ba725669

new PUT auth/tokens/{token-type} API route + updated interface with WebService
author Alain Mazy <am@osimis.io>
date Fri, 24 Feb 2023 18:13:36 +0100
parents 30fb3ce960d9
children 512247750f0a
comparison
equal deleted inserted replaced
71:30fb3ce960d9 72:e381ba725669
36 std::unique_ptr<BaseAuthorizationService> decorated_; 36 std::unique_ptr<BaseAuthorizationService> decorated_;
37 std::unique_ptr<ICache> cache_; 37 std::unique_ptr<ICache> cache_;
38 38
39 std::string ComputeKey(OrthancPluginHttpMethod method, 39 std::string ComputeKey(OrthancPluginHttpMethod method,
40 const AccessedResource& access, 40 const AccessedResource& access,
41 const Token& token, 41 const Token* token,
42 const std::string& tokenValue) const; 42 const std::string& tokenValue) const;
43 43
44 std::string ComputeKey(const std::string& permission, 44 std::string ComputeKey(const std::string& permission,
45 const Token& token, 45 const Token* token,
46 const std::string& tokenValue) const; 46 const std::string& tokenValue) const;
47 47
48 virtual bool IsGrantedInternal(unsigned int& validity, 48 virtual bool IsGrantedInternal(unsigned int& validity,
49 OrthancPluginHttpMethod method, 49 OrthancPluginHttpMethod method,
50 const AccessedResource& access, 50 const AccessedResource& access,
64 64
65 public: 65 public:
66 CachedAuthorizationService(BaseAuthorizationService* decorated /* takes ownership */, 66 CachedAuthorizationService(BaseAuthorizationService* decorated /* takes ownership */,
67 ICacheFactory& factory); 67 ICacheFactory& factory);
68 68
69 virtual bool HasUserProfile() const
70 {
71 return decorated_->HasUserProfile();
72 }
73
74 virtual bool HasCreateToken() const
75 {
76 return decorated_->HasCreateToken();
77 }
78
79 virtual bool HasTokenValidation() const
80 {
81 return decorated_->HasTokenValidation();
82 }
83
84 bool CreateToken(IAuthorizationService::CreatedToken& response,
85 const std::string& tokenType,
86 const std::string& id,
87 const std::vector<IAuthorizationService::OrthancResource>& resources,
88 const std::string& expirationDateString)
89 {
90 return decorated_->CreateToken(response,
91 tokenType,
92 id,
93 resources,
94 expirationDateString);
95 }
96
69 }; 97 };
70 } 98 }