ScriptingSecurityManager getScriptingSecurityManager() {
final FreeplaneSecurityManager securityManager = (FreeplaneSecurityManager) System.getSecurityManager();
final ScriptingSecurityManager scriptingSecurityManager;
// get preferences (and store them again after the script execution,
// such that the scripts are not able to change them).
if (securityManager.needToSetFinalSecurityManager()) {
final ScriptingPermissions permissions = permissions();
permissions.assertScriptExecutionAllowed();
final boolean executeSignedScripts = permissions.isExecuteSignedScriptsWithoutRestriction();
if (executeSignedScripts && isSignedScript()) {
scriptingSecurityManager = permissions.getPermissiveScriptingSecurityManager();