成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

無需修改代碼增強Servlet和JSP的安全性

開發 后端
本文介紹無需修改代碼增強Servlet和JSP的安全性,以及設置XML文件和運行實例代碼。

編寫Servlet和JSP是容易的,但通常我們會面臨很多安全問題。當然,我們會在程序中加入大量的安全代碼來解決這個問題,但加入這樣的安全硬編碼將使程序變得不靈活,而且不易維護。因此,在本文中將給出一種無需修改代碼即可達到安全目的方法,并提供了一個實例進行說明。
 
在本文中的例子將通過一個用戶名和密碼以及傳輸層的SSL來保護應用程序的war文件。用戶名和密碼以明文在網絡中傳輸。這一切并不需要編輯應用程序中的Java代碼和JSP頁。而為了使Servlet和JSP頁變得安全,我們要做的只是配置web.xml文件而已。
 
一.設置XML文件
 
配置web.xml文件的***步是定義一個安全約束,也就是一個<security-constraint>標簽。這個標簽將保護響應的URL,以使特定的用戶才能訪問它。注意我們必須要使用<http-method>標簽定義一個或多個HTTP方法。如果你想讓安全約束應用到所有的HTTP方法,那么只要簡單的忽略<http-method>標簽即可。
 
做完上面的設置后,下一步需要設置SSL。我們可以使用<user- data-constraint>標簽以及這個標簽的一個子標簽<transport-guarantee>來設置。卻將<transport-guarantee>的值設置成CONFIDENTIAL。
 
***一步我們需要設置驗證方法。這需要設置<login-config>標簽以及子標簽<auth-method>。在這里我們將<auth-method>設為BASIC。下面是web.xml文件的部分內容:

  1. <security-constraint> 
  2.       < web-resource-collection> 
  3.          <web-resource-name>Servlet Application  
  4.          </web-resource-name> 
  5.          <url-pattern>/*</url-pattern> 
  6.       </web-resource-collection> 
  7.       <auth-constraint> 
  8.          <role-name>ttrole</role-name> 
  9.       </auth-constraint> 
  10.       <user-data-constraint> 
  11.          <transport-guarantee>CONFIDENTIAL  
  12.          </transport-guarantee> 
  13.       </user-data-constraint> 
  14.    </security-constraint> 
  15.    <login-config> 
  16.       <auth-method>BASIC</auth-method> 
  17.       <realm-name>default</realm-name> 
  18.    </login-config> 
  19.  
  20.    <security-role> 
  21.       <role-name>ttrole</role-name> 
  22.   </security-role> 

在上述的例子中,只有用戶"ttrole"才能訪問Servlet和JSP頁。
 
在Java EE環境中將使用這些用戶驗證,但在許多操作系統環境中,用戶和組關聯。因此,security-role-mapping在用戶頭組之間提供了一座橋梁。在Java EE 5應用服務器中,我們可以在sun-application.xml文件中按如下的方式字義security-role-mapping標簽:

  1. <sun-application> 
  2.      <security-role-mapping> 
  3.        <role-name>myrole</role-name> 
  4.        <principal-name>myuser</principal-name> 
  5.      </security-role-mapping> 
  6.      <security-role-mapping> 
  7.        <role-name>ttrole</role-name> 
  8.        <group-name>ttgroup</group-name> 
  9.      </security-role-mapping> 
  10.      <security-role-mapping> 
  11.        <role-name>arole</role-name> 
  12.        <principal-name>ttuser</principal-name> 
  13.      </security-role-mapping> 
  14.    </sun-application> 

二、運行實例代碼

在這一節我們來講一下如何運行上面的程序。在這里我們使用的集成開發環境是NetBeans IDE 5.5以及NetBeans企業開發包。在安裝完NetBeans后,我們需要進行以下幾步來運行這個程序。

1. 首先我們需要下載這個程序,下載連接為:例子代碼。 然后將其解壓。

2. 啟動NetBeans。

3. 打開webann工程(剛才zip文件中的NetBeans工程),如果出現一個" Resolve missing server problem"提示信息,說明應用服務器還沒有被加到NetBeans的服務器列表中。我們可以選擇Tools > Server Manager,然后將相應的服務器加到列表中。

4. 啟動Sun內嵌在NetBeans中的Java System Application Server。我們還可以通過在命令中輸入如下的命令來啟動服務器:
<appserv_install_dir>/bin/asadmin start-domain domain1
上面的<appserv_install_dir>是應用服務器的安裝目錄。

5. 建立一個用戶。我們可以通過管理控制臺來完成的(默認是http://localhost:4848),可按以下步驟操作:
(1) 從左側的管理樹中選擇Configuration > Security > Realms > file。
(2) 單擊"Manage Users",然后單擊"New"。
(3) 輸入以入信息。
User Id: ttuser
Group List: ttgroup
New Password: ttpassword
Confirm New Password: ttpassword
(4) 單擊"OK",保存設置。

在建立***個用戶后,使用同樣的方式建立第二個用戶ttusers2,輸入信息如下:
User Id: ttuser2
Group List: ttgroup
New Password: ttpassword
Confirm New Password: ttpassword
 
6. 按著以下步驟編譯NetBeans工程:
(1) 右擊工程窗口的webann節點。
(2) 選擇"Clean and Build Project"。
在這個步驟中將建立ear文件,并將它們放到webann/dist目錄中。
 
7. 按著以下步驟發布ear文件:
(1) 右擊工程中的webann節點。
(2) 選擇"Deploy Project"。
 
除了上述的發布方法,我們還可以按以下的方式通過管理界面發布:
(1) 在左側的控制樹中選擇Applications > Enterprise Applications。
(2) 單擊"Deploy"。
(3) 單擊"Browser"按鈕找到ear文件
(4) 單擊"OK"。
 
我們還可以通過如下的命令行發布ear文件:
asadmin deploy webann.ear
 
8.下面我們啟動瀏覽器,在地址欄中輸入https://<host>:<port/webann,在這里<host>是主機名,如果是本機,就是"localhost",<port>是HTTPS的端口,如8181。
 
可能由于瀏覽器的不同,所看到的驗證信息不同,但一般會出現一個"unknown authority",這是因為這個例子使用了self-sign驗證。然后瀏覽器將會出現一個選項,提示您是否繼續瀏覽應用程序。
 
如果我們選擇繼續瀏覽應用程序,系統將會提示我們輸入用戶名和密碼。如果我們使用ttuser登錄,將會看到類似如下的響應信息:
Hello, ttuser
Ejb Message: Hello, World, Sat Jun 30 12:04:46 PDT 2007
DataSource login timeout: 0

如果我們使用ttuser2登錄,將會看到類似如下的響應信息:
Hello, ttuser2
DataSource login timeout: 0

之所以它們的響應信息不同是因為它們所角色不同,用戶ttuser擁有"ttrole"和"arole"。而ttuser2只有"ttrole",而沒有"arole"。在這個應用程序中,只有擁有角色"arole"的用戶可以調用SlessLocal.hello(String message)方法,這個方法返回一個"Hello, World"信息。

當我們運行完這個程序后,可以按著如下的步驟卸載ear文件:
1.通過管理界面面卸載ear文件。
(1) 在左側的功能樹中選擇Applications > Enterprise Applications
(2) 選擇"webann",然后單擊"Undeploy"。
 
2. 通過管理界面面刪除用戶。
(1) 選擇Configuration > Security > Realmn > file
(2) 單擊"Manage Users"。
(3) 選擇ttuser和ttuser2。
(4) 單擊"Delete"。

【編輯推薦】

  1. 如何提升Servlet和JSP應用程序的效率
  2. Flex和Jsp之間中文參數的傳遞
  3. 簡單介紹JSP數據庫鏈接
  4. 我國IPTV研究目全球領先
  5. 3G與IPTV是發展大方向
責任編輯:佚名 來源: IT168
相關推薦

2022-09-28 11:10:22

區塊鏈數據安全

2023-07-30 15:00:21

2020-08-05 09:22:39

安全技術數據

2009-07-07 13:29:33

Servlet和JSP

2022-03-29 23:59:03

Linux安全發行版

2009-11-06 13:57:52

2020-07-26 00:34:21

物聯網安全物聯網IOT

2011-05-24 09:15:52

SSH

2012-05-30 09:34:57

2009-07-03 14:02:51

2010-11-24 11:37:51

2021-12-14 10:05:45

VMware災難恢復虛擬化

2012-06-05 13:31:05

2022-06-27 15:07:32

安全意識終端用戶行為網絡安全

2020-05-13 20:35:05

物聯網安全技術

2023-06-19 10:31:08

LPWAN物聯網

2009-06-16 15:23:53

2010-12-01 10:27:48

2019-08-09 10:52:55

云計算云安全混合云

2023-12-28 09:00:00

數字貨幣安全加密貨幣
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人精品国产一区二区4080 | 国产一区二区在线免费观看 | 亚洲国产精品激情在线观看 | 污视频免费在线观看 | 亚洲精品一区二区三区在线观看 | 一区二区三区国产精品 | 久久欧美高清二区三区 | 大象视频一区二区 | 国产一区高清 | 久久久av一区 | 国产精品不卡一区 | 精品一区二区三区四区五区 | 黄色网址免费在线观看 | 九色porny自拍视频 | 91九色porny首页最多播放 | 亚洲精品久久久一区二区三区 | 日韩一区二 | aaaa网站 | 秋霞在线一区 | 日本不卡一区 | 午夜一级黄色片 | 亚洲一区二区三区视频免费观看 | 日本三级精品 | 三级在线免费 | 欧美精品在线免费观看 | 国产综合精品一区二区三区 | 精精久久 | 久久久精品一区二区三区 | 国产免费一级片 | 一区不卡在线观看 | 久久成人国产 | a级免费黄色片 | 欧美日产国产成人免费图片 | 国产中文字幕av | 国产乱码久久久久久一区二区 | 久久婷婷香蕉热狠狠综合 | 亚欧洲精品在线视频免费观看 | 一级久久久久久 | 男女在线免费观看 | 精品国产不卡一区二区三区 | 久久精品99久久 |