为 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 下运行,请使用双反斜杠而不是单斜杠来分隔路径中的目录组件。