Starting from SDC version 3.7.0 a new layer of security has been introduced: the new Security Manager that will prevent any stage on a pipeline to access some protected directories. This is the list of the protected directories by the Security Manager:
$SDC_CONF
- Stages cannot access files in the configuration directory.$SDC_DATA
- Stages cannot access files in the data directory.$SDC_RESOURCES
- Stages can read files in the resources directory, but cannot write to files in the directory.
In case we would try to access any of the protected directories using a pipeline, this pipeline will fail to start with an exception similar to the following:
Classloader SDCClassLoader[type=streamsets-libs name=streamsets-datacollector-jython_2_7-lib private=false] is not allowed access to Data Collector internal directories (/etc/sdc/sdc.properties)
There are three different options that will help resolve this issue:
- Best option: Move affected files out of protected directories. $SDC_RESOURCES is generally the right directory for such files.
- Define an exception(s) for certain files in sdc.properties.
- Disable the security manager. This option is not recommended. Please, use with caution since it will leave SDC vulnerable (different users will be able to get to each other files).