首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2SE

JMX + J2SE 5.0 實現 Web 應用安全管理(二):建立 MBean 與 JMX Agent

     編輯:J2SE

四、建立 JMX MBean

MBean 介面

public interface LoginStatsMBean {
    int getFailedLogins();
    int getSuccessLogins();
}

實作類

public class LoginStats implements LoginStatsMBean {
    public int getFailedLogins() {
        ServletContext ctx = Config.getServletContext();
        Integer val = (Integer) ctx.getAttribute(Constants.FAILED_LOGINS_KEY);
        return val == null ? 0 : val.intValue();
    }
    // getSuccessLogins 同理
}

從 ServletContext 讀取應用層級計數器。

五、建立並保護 JMX Agent

JMXAgent 負責:

  1. 建立 MBeanServer。
  2. 註冊 LoginStatsMBean。
  3. 建立 JMXConnector(含 JNDI、RMI 註冊)。
  4. 配置認證保護。
  5. 應用啟動/停止時啟動/關閉連接器。

核心代碼

public class JMXAgent {
    private MBeanServer server;
    private JMXConnectorServer connectorServer;

    public JMXAgent() {
        // 1. 建立 MBeanServer
        server = MBeanServerFactory.createMBeanServer(DOMAIN);
        // 2. 註冊 MBean
        server.registerMBean(new LoginStats(),
            new ObjectName(DOMAIN + ":name=LoginStats"));
    }
    public void start() { /* 建立 URL、環境、啟動 connectorServer */ }
    public void stop() { /* 停止 connectorServer、取消註冊 MBean */ }
}

StartupListener (ServletContextListener) 於 contextInitialized 調用 agent.start(),contextDestroyed 調用 agent.stop()。

本文來自編程入門網:原文連結

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved