问题标签 [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.

0 投票
1 回答
227 浏览

java - Tomcat9 在 OpenJdk11 中使用安全管理器响应缓慢

我们在 tomcat9 的 java 选项中添加了 -Djava.security.manager 参数来启用安全管理器。Tomcat 运行时没有任何问题,但是当我尝试执行某些操作时,需要 9-10 分钟来处理该操作(登录、注销已部署的应用程序或直接访问其中一个 servlet),并且日志文件中也没有错误。如果我删除此参数,则没有延迟。

此问题仅在 java11 中可见。在 Java 8 之前它可以正常工作,没有任何问题。

例如安全管理器 + tomcat9+ java 11= 执行任何操作的速度很慢

安全管理器 + tomcat9+ java 8= 按预期工作

0 投票
1 回答
286 浏览

groovy - 如何使用 java 安全管理器为白名单包提供 java 安全?

问题: 我试图提供所有限制(黑名单),并且只允许我们使用GroovyClassLoader执行 groovy 时提供的内容

我只能使用GroovyClassLoader的有限权限来执行自定义策略。

现在我正在尝试提供包限制,以用作 groovy 执行的一部分。假设如果我允许com.xy这个包,如果有任何包,那么在 groovy 中使用的这个包应该抛出SecurityException

我试图通过自定义安全管理器实现相同的目标并覆盖checkPackageAccess但没有成功。

当我尝试使用上述方法时,我们需要提供所有用于执行的包,例如 com、java等,而不是java.nio.file。在白名单中

更新

如果我们尝试使用白名单比较来允许com.xy 之类的包,使用 start with check access pkg,它将允许该包,但稍后它将为com抛出安全异常。

任何人都可以帮助我们如何实现它吗?

提前致谢

0 投票
1 回答
409 浏览

java - 启用 java 安全管理器时获取系统属性“os.arch”时权限被拒绝

我有一个简单的 Java 应用程序 ClientApp,它启用了 Java 安全管理器。此应用程序正在尝试调用获取“os.arch”系统属性的测试 jar 方法。由于这很耗时,我们正在使用 Completable 任务调用一个新线程。

这给出了例外

客户端应用程序:

Test.jar 有以下 2 个类文件

测试.java

CustomSupplier.java

但是,当我们禁用 Java 安全管理器时,程序会正常运行。

任何帮助都将不胜感激。

0 投票
1 回答
166 浏览

java-native-interface - JNI 调用 MIP SDK 给出错误 - 无法打开数据库,检查文件夹权限:mip_data\mip\mip.policies.sqlite3

我们在 Java 中启用了 Java 安全性的应用程序。我们需要从 AIP 云中获取标签。我们可以使用 msal4j java 库获取访问令牌。MS 没有为 MIP 提供 java 库,因此我们实现了本机 dll 来获取 AIP 标签。此 dll 与我们的 Web 应用程序集成。应用程序对本机库进行 JNI 调用以获取标签。

我认为 MIP SDK 创建 sqlite 数据库来缓存标签。所以它会在内部在本地磁盘上创建 sqlite 文件。但是由于启用了安全性,我收到 MIP dll 的访问被拒绝错误。

“无法打开数据库,检查文件夹权限:mip_data\mip\mip.policies.sqlite3”

我尝试在 manager.policy 中授予以下权限但不工作

在 JNI 的情况下,Java 安全性如何工作?它是否继承了本机调用的所有权限?

0 投票
0 回答
129 浏览

java - Java SecurityManager 只阻止反射调用和设置

我希望我的 SecurityManager 只阻止invoke方法和set字段反射。getDeclaredMethods或类似的应该保持允许。这可能吗?我想阻止更改security私有java.lang.System类的字段,但仍然允许反射。这是我的代码:

特别是,我想阻止此代码:

0 投票
0 回答
47 浏览

java - 是否可以使用 SecurityManager 来控制哪些类可以写入 stdout/stderr?

我很好奇是否可以限制谁可以写入System.out/System.err使用SecurityManager. 看System.java这个似乎不可能开箱即用,但也许还有另一层我没有看过?

如果不可能开箱即用,是否有使用System.setOut()/实现自定义安全检查的合理模式System.setErr()

0 投票
1 回答
171 浏览

java - 在 checkPermission 方法中加载某些类时,为什么 SecurityManager 会发出递归更新异常?

我正在将 jdk 8 升级到 11。

我在方法中加载了一些类,checkPermission然后安全管理器发出recursive update异常。但使用jdk1.8.0_202一切正常。

是什么导致了这个问题?

  1. 我的环境。
  1. 主要的
  1. 安全管理器
  1. 运行-Djava.security.manager=sm.MySecurityManager

  2. 控制台日志

0 投票
0 回答
93 浏览

java - 如何使用启用的 SecurityManager 运行 Apache Sling?

有人用启用的Java SecurityManager运行Apache Sling吗?这需要一个特殊的 java.policy 文件来允许所有部署的捆绑包完成的操作,并且拥有一个已经允许基本Sling Starter提供的捆绑包所需的基本版本非常有帮助,并且可以为其他部署的代码添加策略。

如果有人能说在 Sling 设置中使用 SecurityManager 是不可行的,我也会感兴趣,这可能是由于它的设计属性(例如在运行时将 JSP 添加到 JCR 的能力)。

背景:如果您在一台服务器上运行多个命令的代码,则可能需要将它们的代码相互分离。虽然 OSGI 确实有一些机制可以将包相互分离,但恶意代码使用例如 Java 反射从其他包提供的服务中获取内部内容是微不足道的。启用的安全管理器至少可能会使这变得更加困难。

(我确实意识到,即使使用安全管理器,恶意代码也很可能会使用错误和设计缺陷来访问系统上其他用户的资源,并且可能将代码与不同授权人认真分离的唯一方法是使用不同的服务器。但至少可以尝试使其变得困难。)

0 投票
1 回答
837 浏览

java - bouncycastle.jce.provider 的内存泄漏

我正在使用 bouncycastle.jce.provider 运行 java (openjdk:11.0.8) 应用程序:

group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.65'

我注意到内存泄漏,转储显示几乎所有内存都被

javax.crypto.JceSecurity -- > java.util.IdentityHashMap

这是它的样子:

在此处输入图像描述

看起来 hashMap 越来越大了。我在 JceSecurity 中看到 2 个 IdentityHashMaps,其中指出:

如何克服?修复如何?

我在使用此提供程序的方式下方添加,以防它以某种方式相关:

0 投票
2 回答
156 浏览

java - 访问被拒绝(“javax.net.ssl.SSLPermission”“setDefaultSSLContext”)

我正在使用下面的代码来信任所有证书并且代码在容器化环境中运行,我收到异常,因为访问被拒绝(“javax.net.ssl.SSLPermission”“setDefaultSSLContext”)和在普通 tomcat 服务器上运行的相同代码工作正常

}