[pve-devel] [PATCH v3 manager 2/9] rest_handler: implement 'allowtoken' property

Fabian Grünbichler f.gruenbichler at proxmox.com
Tue Jan 21 13:54:22 CET 2020


to filter out API paths that are not available with API tokens for
security reasons, such as access control related endpoints.

Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
---

Notes:
    pairs with patch in pve-common that adds this to the schema-schema. any modules
    setting that flag need a corresponding versioned depends on
    libpve-common-perl..
    
    v2->v3:
    - rename to allowtoken, negate default value/semantics

 PVE/HTTPServer.pm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/PVE/HTTPServer.pm b/PVE/HTTPServer.pm
index 65f3a1d8..7859081b 100755
--- a/PVE/HTTPServer.pm
+++ b/PVE/HTTPServer.pm
@@ -7,7 +7,7 @@ use PVE::SafeSyslog;
 use PVE::INotify;
 use PVE::Tools;
 use PVE::APIServer::AnyEvent;
-use PVE::Exception qw(raise_param_exc raise);
+use PVE::Exception qw(raise_param_exc raise_perm_exc raise);
 
 use PVE::RPCEnvironment;
 use PVE::AccessControl;
@@ -148,6 +148,9 @@ sub rest_handler {
 	    $uri_param->{$p} = $params->{$p};
 	}
 
+	raise_perm_exc("URI '$rel_uri' not available with API token, need proper ticket.\n")
+	    if $auth->{api_token} && !$info->{allowtoken};
+
 	# check access permissions
 	$rpcenv->check_api2_permissions($info->{permissions}, $auth->{userid}, $uri_param);
 
-- 
2.20.1





More information about the pve-devel mailing list