11.11.2. 在 Java 安全管理者里运行 JBoss EAP 6
要指定一个 Java 安全管理者策略,你需要编辑在引导过程中传递给域或服务器实例的 Java 选项。出于这个原因,你不能将参数作为选项传递给
domain.sh
或 standalone.sh
脚本。下面的过程会指引你配置实例以在 Java 安全管理者里运行 JBoss EAP。
前提条件
- 在执行下列过程之前,你需要用 JDK 里包含的
policytool
编写一个安全策略。这个过程假定你的策略位于EAP_HOME/bin/server.policy
。您也可以用任何文本编辑器手工编写安全策略并将其保存为EAP_HOME/bin/server.policy
。 - 在编辑配置文件之前,域或独立服务器必须完全停止。
如果你有域成员跨越多个系统,请对每个域里的物理主机或实例执行下列过程。
过程 11.36. 为 JBoss EAP 6 配置安全管理者
打开配置文件。
打开配置文件进行编辑。根据你使用的是域还是独立服务器,这个文件位于两个位置中的一个。它不是用来启动服务器或域的可执行文件。受管域
- 对于 Linux:
EAP_HOME/bin/domain.conf
- 对于 Windows:
EAP_HOME\bin\domain.conf.bat
独立服务器
- 对于 Linux:
EAP_HOME/bin/standalone.conf
- 对于 Windows:
EAP_HOME\bin\standalone.conf.bat
在文件里添加 Java 选项。
为了确保使用 Java 选项,请在代码块里添加以下列行开始的内容:if [ "x$JAVA_OPTS" = "x" ]; then
您可以修改-Djava.security.policy
值来指定安全策略的准确位置。它只应该有一行,且没有换行符。设置-Djava.security.policy
属性时使用==
指定这个安全管理者将只使用指定的策略文件。使用=
指定安全管理者将使用指定的策略以及JAVA_HOME/lib/security/java.security
的policy.url
部分里的策略。重要
JBoss EAP 从 6.2.2 开始要求将系统属性jboss.modules.policy-permissions
设置为 true。例 11.32. domain.conf
JAVA_OPTS="$JAVA_OPTS -Djava.security.manager -Djava.security.policy==$PWD/server.policy -Djboss.home.dir=/path/to/EAP_HOME -Djboss.modules.policy-permissions=true"
例 11.33. domain.conf.bat
set "JAVA_OPTS=%JAVA_OPTS% -Djava.security.manager -Djava.security.policy==\path\to\server.policy -Djboss.home.dir=\path\to\EAP_HOME -Djboss.modules.policy-permissions=true"
例 11.34. standalone.conf
JAVA_OPTS="$JAVA_OPTS -Djava.security.manager -Djava.security.policy==$PWD/server.policy -Djboss.home.dir=$JBOSS_HOME -Djboss.modules.policy-permissions=true"
例 11.35. standalone.conf.bat
set "JAVA_OPTS=%JAVA_OPTS% -Djava.security.manager -Djava.security.policy==\path\to\server.policy -Djboss.home.dir=%JBOSS_HOME% -Djboss.modules.policy-permissions=true"
启动域或服务器。
正常地启动域或服务器。