11.11.2. 在 Java 安全管理者里运行 JBoss EAP 6

要指定一个 Java 安全管理者策略,你需要编辑在引导过程中传递给域或服务器实例的 Java 选项。出于这个原因,你不能将参数作为选项传递给 domain.shstandalone.sh 脚本。下面的过程会指引你配置实例以在 Java 安全管理者里运行 JBoss EAP。

前提条件

  • 在执行下列过程之前,你需要用 JDK 里包含的 policytool 编写一个安全策略。这个过程假定你的策略位于 EAP_HOME/bin/server.policy。您也可以用任何文本编辑器手工编写安全策略并将其保存为 EAP_HOME/bin/server.policy
  • 在编辑配置文件之前,域或独立服务器必须完全停止。
如果你有域成员跨越多个系统,请对每个域里的物理主机或实例执行下列过程。

过程 11.36. 为 JBoss EAP 6 配置安全管理者

  1. 打开配置文件。

    打开配置文件进行编辑。根据你使用的是域还是独立服务器,这个文件位于两个位置中的一个。它不是用来启动服务器或域的可执行文件。
    • 受管域

      • 对于 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
  2. 在文件里添加 Java 选项。

    为了确保使用 Java 选项,请在代码块里添加以下列行开始的内容:
    if [ "x$JAVA_OPTS" = "x" ]; then
    
    您可以修改 -Djava.security.policy 值来指定安全策略的准确位置。它只应该有一行,且没有换行符。设置 -Djava.security.policy 属性时使用 == 指定这个安全管理者将使用指定的策略文件。使用 = 指定安全管理者将使用指定的策略以及 JAVA_HOME/lib/security/java.securitypolicy.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"
  3. 启动域或服务器。

    正常地启动域或服务器。