Restrict Files Access
abstract
This section describes how we can restrict Sahi Pro's access to different files.
It is available since Sahi Pro V6.3.1.
It is available since Sahi Pro V6.3.1.
Configure userdata_hidden.properties
By default, Sahi Pro's file manipulation APIs like _readFile
,_writeFile
,_deleteFile
,_renameFile
,_copyFile
etc. have access to all the files on the file system. This can be restricted to only specific directories by configuring the property file.accessible.dir
in <sahi_root>/userdata/config/userdata_hidden.properties
file.
// Use wildcard '*' to provide access to all the files.
file.accessible.dir=*; // By default, Sahi Pro has access to all the files.
// Restrict Sahi Pro's access to only the files inside example directory and its sub-directories.
file.accessible.dir=D:/testing/example; // Must use '\\' or '/' as file path separator.
// Restrict SahiPro's access to only the files inside Sahi Pro's default scripts directory and its sub-directories.
file.accessible.dir=userdata/scripts; // The path here is relative to Sahi Pro installation directory
// Provide access to multiple directories by separating multiple directories with semi-colon.
// Restrict Sahi Pro's access to only the files inside 'scripts directory and its sub-directories' and 'example directory and its sub-directories'.
file.accessible.dir=userdata/scripts; D:/example;
// Restrict Sahi Pro's access to only the script directories configured in Sahi Pro.
file.accessible.dir=$scripts.dir;
info
- Restart Sahi Pro after updating
userdata_hidden.properties
. - Ensure that Sahi Pro has access to all the files that will be accessed using file manipulation APIs during playback. If not, then Sahi Pro will show a message as
"File Access is not allowed for <file-path>"
in the logs and the script will fail. - Note that these file restrictions are only applicable on file manipulation APIs of Sahi Pro.
File access can still be accomplished by following ways :
- Calling java code
- Executing external programs
- Launching your external java applications using _launchJavaApplication, _launchJavaWSApplication
Refer here for restricting remote access.