java中唯一调用方信息的提取

java中唯一调用方信息的提取,java,reflection,Java,Reflection,我要做的是实现一些基本的安全性,不仅要检查哪个类调用了特定的方法,还要检查该类的哪个实例 我试过了 stackTraceeElement[]stackTraceeElements=Thread.currentThread().getStackTrace() 但这显然只给了我类名。允许/要求呼叫者发送self或personal id的问题在于,所有呼叫者都必须能够访问所有其他呼叫者的详细信息。有人能帮忙吗 编辑:更多信息: 因此,我们有一个服务器,它与多个代理建立连接。代理发送信息包,其中包括他们

我要做的是实现一些基本的安全性,不仅要检查哪个类调用了特定的方法,还要检查该类的哪个实例

我试过了

stackTraceeElement[]stackTraceeElements=Thread.currentThread().getStackTrace()

但这显然只给了我类名。允许/要求呼叫者发送self或personal id的问题在于,所有呼叫者都必须能够访问所有其他呼叫者的详细信息。有人能帮忙吗

编辑:更多信息:

因此,我们有一个服务器,它与多个代理建立连接。代理发送信息包,其中包括他们声称拥有的名称。有一个特别探员决定人们是否可以在每一个特定的案件中撒谎

代理与服务器上的代理类实例建立连接,但也有可能某些代理将以本机方式运行。我对这种方法感兴趣的原因是我以后需要这种技术(提取调用给定方法的特定实例)


我希望这样更好,并为之前没有提供足够的信息感到抱歉://

整个攻击线不可能确保任何安全。如果用户可以控制运行的代码,他们可以运行codegen库并编辑您的代码。如果用户无法控制代码,那么这一切都是不必要的

如果您无法抗拒这种冲动,一种方法是将所有内容都封装在代理中,以传达您所需的信息

所谓代理,我的意思是
java.lang.reflect.Proxy
。也就是说,将这些对象中的每一个都包装在代理中。代理的工作是将
这个
存储在您自己的堆栈上,供被调用方查阅


这本质上是AOP(面向方面编程)的翻版,所以您可能想了解一下。看看Spring框架。

整个攻击线不可能确保任何安全。如果用户可以控制运行的代码,他们可以运行codegen库并编辑您的代码。如果用户无法控制代码,那么这一切都是不必要的

如果您无法抗拒这种冲动,一种方法是将所有内容都封装在代理中,以传达您所需的信息

所谓代理,我的意思是
java.lang.reflect.Proxy
。也就是说,将这些对象中的每一个都包装在代理中。代理的工作是将
这个
存储在您自己的堆栈上,供被调用方查阅


这本质上是AOP(面向方面编程)的翻版,所以您可能想了解一下。看看Spring框架。

您没有保护这样的东西


我认为,对于此类问题,只需检查所有贡献代码是否来自签名JAR。

您无法保护类似的内容


我认为对于此类问题,只需检查所有贡献代码是否来自签名JAR。

查找。您不应该知道哪个客户端正在做什么,而应该为每个客户端提供单独的功能对象(基本上是具有不同权限的代理对象)。

查找。您不应该知道哪个客户端正在做什么,而应该为每个客户端提供单独的功能对象(基本上是具有不同权限的代理对象)。

正如bmargulies所说,您将无法以这种方式保护任何内容。如果你告诉我们更多关于你在做什么以及为什么要这么做,也许我们可以帮助你想出另一种方法。正如巴古利斯所说,你将无法通过这种方式获得任何东西。如果你告诉我们更多关于你在做什么以及你为什么要这么做,也许我们可以帮助你想出另一种方法。好吧,我想我没有提供足够的信息。整个结构在服务器上,代理已经是代理了。问题是代理发送的数据包中包含一些数据。服务器只需要添加一个标记来说明它来自哪个代理。好吧,我想我没有提供足够的信息。整个结构在服务器上,代理已经是代理了。问题是代理发送的数据包中包含一些数据。服务器只需要添加一个标记来说明它来自哪个代理。我只想验证身份。人们可以随心所欲地撒谎,只要我们知道哪些谎言是由同一个人说的。我只是想核实身份。只要我们知道哪些谎言是由同一个人说的,人们就可以随心所欲地撒谎。