为 FreeMarker 配置安全策略

在安装了安全 Management 器的 Java 虚拟机中使用 FreeMarker 时,必须授予它很少的权限以确保其正常运行。最值得注意的是,您需要将这些条目添加到freemarker.jar的安全策略文件中:

grant codeBase "file:/path/to/freemarker.jar"
{
  permission java.util.PropertyPermission "file.encoding", "read";
  permission java.util.PropertyPermission "freemarker.*", "read";
}

此外,如果要从目录加载模板,则需要授予 FreeMarker 权限,以使用以下权限从该目录读取文件:

grant codeBase "file:/path/to/freemarker.jar"
{
  ...
  permission java.io.FilePermission "/path/to/templates/-", "read";
}

最后,如果您只是使用从当前目录加载模板的默认模板加载机制,请另外指定以下权限:(请注意,表达式${user.dir}将在运行时由策略解释器求值,就像 FreeMarker 模板)

grant codeBase "file:/path/to/freemarker.jar"
{
  ...
  permission java.util.PropertyPermission "user.dir", "read";
  permission java.io.FilePermission "${user.dir}/-", "read";
}

自然,如果您在 Windows 下运行,请使用双反斜杠而不是单斜杠来分隔路径中的目录组件。

上一章 首页 下一章