Java 线程模拟
Posted
技术标签:
【中文标题】Java 线程模拟【英文标题】:Java Thread Impersonation 【发布时间】:2013-09-14 18:51:21 【问题描述】:C++ 和 C# 等语言允许生成线程并为该线程设置用户主体。本质上,可以以不同于创建线程的用户的身份运行新线程。
Java 不支持这个。
我假设这样的事情可以使用 Java 使用 JNI 来完成?如果是这样,任何人都可以提供一个例子。
注意:Windows runas 或 PSTools psexec 等解决方案可以让您从 java 模拟进程,但不安全。我不是在寻找这些类型的解决方案。
【问题讨论】:
Impersonating a user from a Java Servlet的可能重复 【参考方案1】:你将无法在纯 Java 中做到这一点。
通过 JNI 执行此操作将迫使您拥有特定于平台的代码,因此该解决方案将无法移植,并且将依赖特定平台机制来处理用户模拟。
此外,请记住,模拟适用于多个进程(而不是线程)。在 JVM 内部有多个线程,但只有一个进程(=> 一个用户)。要拥有其他用户,您必须生成另一个进程(=> 另一个 JVM)。而且 RPC 并不容易......
【讨论】:
以上是关于Java 线程模拟的主要内容,如果未能解决你的问题,请参考以下文章