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

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

編輯:J2SE

一、 引言
 
JMX(Java管理擴展)提供了一組工具用來管理本地和遠程應用程序、系統對象、設備等。本文將解釋如何使用JMX(JSR 160)來遠程控制Web應用程序,並將解釋應用程序中可用於JMX客戶的代碼,同時將展示使用如MC4J和jManage等的不同客戶如何連接到支持JMX的應用程序。此外,我們還將詳細地討論使用RMI協議和JNDI來保護通訊層。
 
首先我們要分析一個簡單的web應用程序,它監控已經登陸的用戶數目並通過一個安全的JMX服務來顯示該項統計。我們還將運行這個應用程序的多個實例並且從所有的運行實例中跟蹤這個統計數字。當然,你可以下載這個示例web應用程序。它需要你安裝J2SE 5.0 SDK並且你的Java_HOME環境變量指向基安裝目錄。J2SE 5.0實現了1.2版本的JMX API和JMX 1.0版本的Remote API。同時還需要一個支持Servlet的容器;我使用的是Apache Tomcat 5.5.12。另外,我還使用apache Ant來構建這一示例應用程序。
 
二、 建立示例應用程序
 
首先,你要下載示例應用程序並且使用ant war(更多的細節見build.XML中的注釋)來創建一個WAR文件。把jmxapp.war復制到Tomcat的webaPPS目錄。假定Tomcat正在運行於你的本地機器的端口8080,那麼該應用程序的URL將是:
 
http://localhost:8080/jmxapp
 
如果你看到一個提示你輸入名字和口令的登陸屏幕,那麼一切已經就緒了。
 
三、 跟蹤一些有意義的數據
 
本文中的應用程序使用Struts框架來提交登錄表單。一旦提交結束,即執行LoginAction.execute(..)方法-它將簡單地檢查是否用戶的ID為"hello"以及是否其口令為"world"。如果二者都正確,那麼登錄成功並且控制被導向login_success.JSP;如果不正確,那麼我們返回到登錄表單。根據登錄成功與否決定調用incrementSuccessLogins(HttpServletRequest)方法還是incrementFailedLogins(HttpServletRequest)方法。現在,讓我們先分析一下incrementFailedLogins(HttpServletRequest):
 
private void incrementFailedLogins(HttpServletRequest request) {
   HttpSession session = request.getSession();
   ServletContext context =session.getServletContext();
   Integer num = (Integer) context.getAttribute( Constants.FAILED_LOGINS_KEY);
   int newValue = 1;
   if (num != null) { newValue = num.intValue() + 1; }
   context.setAttribute( Constants.FAILED_LOGINS_KEY, new Integer(newValue));
 }
 
這個方法增加一個在應用程序范圍存儲的FAILED_LOGINS_KEY變量。這個incrementSuccessLogins(HttpServletRequest)方法是以相似的方法實現的。該應用程序追蹤有多少人成功地登錄和有多少人認證失敗。這真不錯,但是我們該如何存取這些數據?這就是引入JMX的原因。

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

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