java如何将客户端环境传递给MBean方法调用
我们的一个应用程序公开了管理MBean,允许开发人员以各种方式推动它。这些通常是长时间运行的操作,如重新处理历史输入、刷新参考数据等
如果这些操作失败或遇到重大问题,MBean操作将向该组发送一封包含一些相关信息的电子邮件
然而,除了调用该操作的人之外,其他人完全没有上下文因此,我希望能够确定是谁点击了按钮,以便只向他们发送电子邮件
我很高兴根据某种用户识别器查找电子邮件地址。这是一个开发过程,所以更多的是为了方便,而不是为了安全——例如,依赖System.getProperty("user.name")
是可以接受的
MBean操作是否有办法判断是谁单击了JConsole中的按钮来调用它?也许是通过让客户端自动传递其系统属性,或者通过向由客户端自动填充的方法添加参数?我是否可以从方法中查找JMX连接的静态/线程本地上下文?(即使客户端的主机名也是一个足够好的鉴别器)
# 1 楼答案
现在JMX中没有可用的客户机上下文,也许它将被添加到JDK 9中
http://weblogs.java.net/blog/emcmanus/archive/2008/12/client_context_1.html