JMX+J2SE5.0实现Web应用的安全管理 - 编程入门网
val.intValue();
}
该方法返回一个存储在ServletContext中的值。getSuccessLogins()方法是以相似的方式实现的。 五、 创建和保护一个JMX代理 管理应用程序的JMX相关方面的JMXAgent类有以下几个责任: 1. 创建一个MBeanServer。 2. 用MBeanServer注册LoginStatsMBean。 3. 创建一个JMXConnector以允许远程客户进行连接。 o 包含对JNDI的使用。 o 也必须有一个RMI注册运行。 4. 使用一个用户名和口令保护JMXConnector。 5. 分别在应用程序启动和停止时,启动和停止JMXConnector。 JMXAgent的类轮廓是:
让我们理解在该构造器的这部分代码-它能够使得客户远程地监控该应用程序。 用MBeans创建一个MBeanServer 我们首先创建一个MBeanServer对象。它是JMX基础结构的核心组件,它允许我们暴露我们的MBeans作为可管理的对象。MBeanServerFactory.createMBeanServer(String)方法使得这一任务极为轻松。所提供的参数是服务器的域。可以把它当作这个MBeanServer的唯一的名字。然后,我们用MbeanServe来注册LoginStatsMBean。MBeanServer.reGISterMBean(Object,ObjectName)方法使用的参数有两个:一个是MBean实现的一个实例;另一个是类型ObjectName的一个对象-它用于唯一地标识该MBean;在这种情况下,DOMAIN+":name=LoginStats"就足够了。
JMX+J2SE5.0实现Web应用的安全管理(3)时间:2011-07-29六、 创建JMXServiceURL 到现在为止,我们已经创建了一个MBeanServer并且用它注册了LoginStatsMBean。下一步是使得该服务器对客户可用。为此,我们必须创建一个JMXServiceURL-它描述了客户将用来存取该JMX服务的URL:
让我们细致地分析一下上面一行代码。该JMXServiceURL构造器使用了四个参数: 1. 在连接时使用的协议(rmi,jmxmp,iiop,等等)。 2. JMX服务的主机。用localhost作为参数就足够了。然而,提供null强制JMXServiceURL找到可能是最好的主机名。例如,在这种情况下,它将把null翻译成zarar-这是我的计算机的名字。 3. JMX服务使用的端口。 4. 最后,我们必须提供URL路径-它指示怎样找到JMX服务。在这种情况下,它会是/jndi/rmi://localhost:1099/jmxapp。 其中,/jndi部分是指,客户必须为JMX服务做一下JNDI查询。rmi://localhost:1099指示,存在一个运行于本机的端口1099的RMI注册。这里的jmxapp是在RMI注册中唯一标识这个JMX服务的。在JMXServiceURL对象上的一个toString()产生下列结果: service:jmx:rmi://zarar:9589/jndi/rmi://localhost:1100/jmxapp 上面是客户将最终使用来连接到该JMX服务的URL。J2SE 5.0文档有关于这个URL结构的更为详细的解释。 (一) 保护服务 J2SE 5.0提供了一种有利于JMX用一种容易的方式进行用户认证的机制。我创建了一个简单的文本文件-它存储用户名和口令信息。文件的内容是: zarar siddiqi fyodor dostoevsky 用户zarar和fyodor被分别通过口令siddiqi和dostoevsky认证。下一步是创建并保护一个JMXConnectorServer,它暴露了该MbeanServer。username/password文件的路径被存储在该键下的一个映射中-jmx.remote.x.password.f |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |