gpt4 book ai didi

javaws 系统属性放宽或删除安全?

转载 作者:搜寻专家 更新时间:2023-11-01 00:51:02 27 4
gpt4 key购买 nike

升级到 Java 7(Oracle/Sun JDK,而非 OpenJDK)后,如果我尝试使用 javaws 在 Web Start 下测试我的应用程序,它会告诉我“应用程序被安全设置阻止”。我可以使用 Java 控制面板将安全性从高降低到中等以使其正常工作(它会询问我是否要启动未签名的应用程序),但这也会降低我的 Web 浏览器的安全级别。是否有任何系统属性可以让我执行 javaws -J-Dkey=value 来让 javaws 的一个实例放松或忽略关于将要启动的内容的安全性(但在其他方面保持安全性不变) )?

编辑:如果有人能指出javaws 的Java 7 源代码在哪里,我很乐意通读代码以找到答案。

编辑 2:当我通过 Java 控制面板将 Java 安全性设置为中等时,使用 javaws 启动我的应用程序会导致它询问我是否要运行未签名的应用程序;这就是我想要复制的。控制面板通过将系统属性 deployment.security.level=MEDIUM 添加到文件 ~/.java/deployment/deployment.properties 来将安全设置为中等。我尝试了两种使用方法:

1) 将 -J-Ddeployment.security.level=MEDIUM 传递给 javaws。这会导致我的应用程序完全启动,而不会询问我是否要运行未签名的应用程序。

2) 通过-J-Ddeployment.system.config=~/.java/deployment/FOO.properties,其中FOO.properties是正常的副本deployment.properties 文件,手动添加了 deployment.security.level=MEDIUM。同样,这会导致我的应用程序完全启动,而不会询问我是否要运行未签名的应用程序。

编辑 3:请注意,我使用的是 Oracle/Sun JDK,而不是 OpenJDK。

最佳答案

  • 您是否尝试过创建自己的自定义 SecurityManager
  • 您是否尝试过使用 java.security.AllPermission(只是为了测试这是否适合您)?

相关规范:

这可能与您非常相关:

编辑:回复:javaws,检查 javaws 本身的调用。我做了 cat/usr/bin/javaws 然后我们开始:

#!/bin/bash

JAVA=/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java
LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:/usr/share/icedtea-web/netx.jar"
LAUNCHER_FLAGS=-Xms8m
CLASSNAME=net.sourceforge.jnlp.runtime.Boot
BINARY_LOCATION=/usr/bin/javaws
PROGRAM_NAME=javaws
CP=/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/rt.jar

JAVA_ARGS=( )
ARGS=( )
COMMAND=()

i=0
j=0

while [ "$#" -gt "0" ]; do
case "$1" in
-J*)
JAVA_ARGS[$i]="${1##-J}"
i=$((i+1))
;;
*)
ARGS[$j]="$1"
j=$((j+1))
;;
esac
shift
done

k=0
COMMAND[k]="${JAVA}"
k=$((k+1))
COMMAND[k]="${LAUNCHER_BOOTCLASSPATH}"
k=$((k+1))
COMMAND[k]="${LAUNCHER_FLAGS}"
k=$((k+1))
i=0
while [ "$i" -lt "${#JAVA_ARGS[@]}" ]; do
COMMAND[k]="${JAVA_ARGS[$i]}"
i=$((i+1))
k=$((k+1))
done
COMMAND[k]="-classpath"
k=$((k+1))
COMMAND[k]="${CP}"
k=$((k+1))
COMMAND[k]="-Dicedtea-web.bin.name=${PROGRAM_NAME}"
k=$((k+1))
COMMAND[k]="-Dicedtea-web.bin.location=${BINARY_LOCATION}"
k=$((k+1))
COMMAND[k]="-Djava.security.manager"
k=$((k+1))
COMMAND[k]="-Djava.security.policy=/etc/icedtea-web/javaws.policy"
k=$((k+1))
COMMAND[k]="${CLASSNAME}"
k=$((k+1))
j=0
while [ "$j" -lt "${#ARGS[@]}" ]; do
COMMAND[k]="${ARGS[$j]}"
j=$((j+1))
k=$((k+1))
done

"${COMMAND[@]}"

exit $?

最重要的是加载了一个javaws.policy

关于javaws 系统属性放宽或删除安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16911382/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com