问题标签 [java-security-manager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 防止 Java 应用程序执行恶意活动
我需要下载并运行一个 Jar 文件。有没有办法知道它可以/会做什么?我的意思是它有什么权限?具体来说,我需要知道它是否会尝试访问我的文件以及是否会尝试使用我的互联网。当我下载一个安卓应用程序时,我可以清楚地看到它所寻求的权限。Java桌面应用程序有类似的东西吗?
java - 允许 JavaFX 8 窗口始终显示在顶部?
我在我的应用程序上启用了 Java 安全管理器以及在项目目录中配置的自定义安全策略。我试图始终在顶部显示 JavaFX 窗口,但是启用安全管理器后,我无法执行此操作。
在查看 Javadoc for 之后Stage#setAlwaysOnTop(boolean)
,我得到了这个:
如果存在安全管理器,则应用程序之间的行为会有所不同。允许具有权限的应用程序在舞台上设置“始终位于顶部”标志。在没有适当权限的应用程序中,设置标志的尝试将被忽略,属性值将恢复为“false”。
该属性是只读的,因为它可以由底层平台在外部进行更改,因此不能绑定。
我已经尝试通过其他来源和官方的 Oracle JavaFX 8 Javadocs在线搜索,以至少提示我应该在我的策略中授予什么权限以允许 JavaFX 窗口始终显示在顶部,但是我不走运。
注意:我不想授予我的应用程序java.security.AllPermission
,我只想授予我的应用程序所需的权限。
java - jar 未加载启用 java.security.manager
我们运行一个 spring-boot 应用程序,它将在 /tmp 文件夹中动态下载一些 jars 并在这些 jars 中执行一些功能。
现在我们启用了 java.security.manager 并在 security.policy 文件中给出了以下策略。
以下是 security.policy 文件中指定的策略
并且一些罐子在内部加载 /tmp 文件夹中的另一个罐子。使用这些政策,我们无法加载这些罐子。
有人可以帮助我们吗
java - Java SecurityManager 授权与授权代码库
我正在调查 java 安全管理器。我看到'grant' 是 *.policy 文件的必需属性,它是全局的。但是,如果我为相同的资源添加“grant codeBase”,它将如何表现。例如:
- log4j-1.2.17.jar 是否有权限删除日志文件夹中的文件?
- 'grant codeBase' 可以覆盖'grant' 部分吗?
谢谢!
sbt - 如何配置、禁用或覆盖 sbt SecurityManager?
我正在尝试将 Apache Derby 嵌入到应用程序中。当我直接从 IntelliJ 运行它时,一切正常,但sbt run
会产生异常:
Caused by: java.security.AccessControlException: access denied org.apache.derby.security.SystemPermission( "engine", "usederbyinternals" )
这似乎与 SBT 使用的 SecurityManager 有关。有没有办法禁用、重新配置或覆盖默认的 SBT SecurityManager?
java - 如何在 SecurityManager 中检查调用者类的来源?
我有一个用于受信任的应用程序代码的 ClassLoader 和一个用于用户提交(不受信任)代码的单独的 ClassLoader。
我希望用户提交的代码受到安全管理器的限制。如何从 SecurityManager 中检查调用方来源?查看伪代码:
我已经尝试过的:
StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE).getCallerClass().getClassLoader()
首先检查权限,因此它会给出堆栈溢出异常。Thread.currentThread().getStackTrace()[2].getClassLoaderName()
是不安全的,因为它只给出类加载器名称而不是类对象,如果不受信任的加载器的规范名称与受信任的加载器相同,那么这是一个安全问题。
java - 基于signedBy执行Java安全策略
我正在尝试执行安全策略,为由某个签名者签名的 Java 类提供某些权限。我的安全策略文件如下所示:
Keystorecacerts
包含一个别名为 的证书mycompany
。用于测试安全策略的 JAR 文件已使用该证书的私钥签名。当我执行 JAR 文件时
我明白了
当我使用codeBase "path/to/jar"
而不是它时,signedBy "mycompany"
它工作得很好。有人知道这里可能出了什么问题吗?
java - 在openjdk中,安全策略没有生效
在 redhat-openjdk:1.8.0 中,jvm java.policy 和 custom.policy 文件的 java.version 对 activeprocess 生效
我已将 java 进程配置为使用 java 安全管理器,它使用 Apache 服务器来运行该进程。因此 Apache 客户端在默认和/或自定义策略文件中查找“java.version”读取权限。
我已经包含了现成的属性权限,但我得到了奇怪的 AccessControlException。
我看到的例外是:
我有正确的权限 jvm/secruity/java.policy 中的属性权限条目
在custom.policy(-Djava.security.manager -Djava.security.policy=custom.policy)中,文件路径是完全限定的,我只是为了更好地理解而缩短了):
期望是运行 java 进程没有问题,但这并没有发生。
编辑1:
我还尝试使用以下行强制执行所有权限:
grant{
permission java.security.AllPermission;
};
但似乎它仍然无法正常工作。我也尝试在设置策略文件时使用'==',这意味着'如果你使用
(注意双等号)然后只使用指定的策略文件;安全属性文件中指示的所有内容都将被忽略。`
任何帮助深表感谢。
java - 线程“ContainerBackgroundProcessor[StandardEngine[Tomcat]]”中的异常 java.lang.NoClassDefFoundError: ch/qos/logback/classic/spi/ThrowableProxy
启动我的 spring-boot 应用程序时出现错误。该异常与“java secuirity manager”一起发生。
直接使用 IntelliJ-IDE 启动项目工作得很好,但是当我使用终端时,java -jar java -jar 0.0.1-SNAPSHOT.jar
我得到了上述异常。
我已经尝试添加 Maven 依赖项,例如spring-boot-starter-logging
附加到spring-boot-starter-web
,但这并没有解决问题。删除 .m2 并重新安装所有软件包也无济于事。
Maven 依赖项都在最新的稳定版本上。
pom.xml
主.java
java - 为什么需要在 OSGi Security 中授予 Java 安全管理器的所有权限
我想在我的服务器中启用 Java 安全管理器。但是,通过这样做,如问题 [1] 中所述,它授予 OSGI 捆绑包的所有权限。
在尝试启用 OSGi 捆绑包的安全性时,提到要授予 Java 安全管理器的所有权限。[2]
有谁知道这种配置的实际原因?
当我们在服务器中有 OSGi 包以及其他 jar 和 war 文件时,我们可以同时使用 Java 安全管理器和 OSGi 安全吗?
[1]启用 Java 安全管理器 OSGi Equinox 并限制 Bundle 权限
[2] https://felix.apache.org/documentation/subprojects/apache-felix-framework-security.html