程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2SE >> JMX+J2SE5.0實現Web應用的安全管理(2)

JMX+J2SE5.0實現Web應用的安全管理(2)

編輯:J2SE

四、 創建JMX MBeans
 
MBeans基礎知識及其適於JMX架構的方面超出了本文所討論的范圍。我們將為我們的應用程序簡單地創建、實現、暴露和保護一個MBean。我們所感興趣的是暴露相應與下列兩個方法的兩種數據。下面是我們的簡單MBean接口:
 
public interface LoginStatsMBean {
   public int getFailedLogins();
   public int getSuccessLogins();
 }
 
這兩個方法簡單地返回成功和失敗登陸的數目。LoginStatsMBean的實現-LoginStats,為上面兩種方法提供了一種具體的實現。讓我們分析一下getFailedLogins()實現:
 
public int getFailedLogins() {
   ServletContext context = Config.getServletContext();
   Integer val = (Integer) context.getAttribute( Constants.FAILED_LOGINS_KEY);
   return (val == null) ? 0 : val.intValue();
 }
 
該方法返回一個存儲在ServletContext中的值。getSuccessLogins()方法是以相似的方式實現的。
 
五、 創建和保護一個JMX代理
 
管理應用程序的JMX相關方面的JMXAgent類有以下幾個責任:
 
1. 創建一個MBeanServer。
 
2. 用MBeanServer注冊LoginStatsMBean。
 
3. 創建一個JMXConnector以允許遠程客戶進行連接。
 
o 包含對JNDI的使用。
 
o 也必須有一個RMI注冊運行。
 
4. 使用一個用戶名和口令保護JMXConnector。
 
5. 分別在應用程序啟動和停止時,啟動和停止JMXConnector。
 
JMXAgent的類輪廓是:
 
public class JMXAgent {
 public JMXAgent() {
 //初始化JMX服務器
 }
 public void start() {
 //啟動JMX服務器
 }
 //在應用程序結束時調用
 public void stop() {
 //停止JMX服務器
 }
 }
 
讓我們理解在該構造器的這部分代碼-它能夠使得客戶遠程地監控該應用程序。
 
用MBeans創建一個MBeanServer
 
我們首先創建一個MBeanServer對象。它是JMX基礎結構的核心組件,它允許我們暴露我們的MBeans作為可管理的對象。MBeanServerFactory.createMBeanServer(String)方法使得這一任務極為輕松。所提供的參數是服務器的域。可以把它當作這個MBeanServer的唯一的名字。然後,我們用MbeanServe來注冊LoginStatsMBean。MBeanServer.reGISterMBean(Object,ObjectName)方法使用的參數有兩個:一個是MBean實現的一個實例;另一個是類型ObjectName的一個對象-它用於唯一地標識該MBean;在這種情況下,DOMAIN+":name=LoginStats"就足夠了。
 
MBeanServer server = MBeanServerFactory.createMBeanServer(DOMAIN);
 server.registerMBean(new LoginStats(),new ObjectName(DOMAIN+ ":name=LoginStats"));

本文來自編程入門網:http://www.bianceng.cn/Programming/Java/201107/28048_2.htm

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved