溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Servlet和JSP安全問題的示例分析

發(fā)布時間:2021-11-22 10:32:08 來源:億速云 閱讀:121 作者:小新 欄目:編程語言

這篇文章主要介紹了Servlet和JSP安全問題的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一、設(shè)置XML文件

配置web.xml文件的***步是定義一個安全約束,也就是一個標(biāo)簽。這個標(biāo)簽將保護(hù)響應(yīng)的URL,以使特定的用戶才能訪問它。注意我們必須要使用標(biāo)簽定義一個或多個HTTP方法。如果你想讓安全約束應(yīng)用到所有的HTTP方法,那么只要簡單的忽略標(biāo)簽即可。

做完上面的設(shè)置后,下一步需要設(shè)置SSL。我們可以使用標(biāo)簽以及這個標(biāo)簽的一個子標(biāo)簽來設(shè)置。卻將的值設(shè)置成CONFIDENTIAL。

***一步我們需要設(shè)置驗證方法。這需要設(shè)置標(biāo)簽以及子標(biāo)簽。在這里我們將設(shè)為BASIC。下面是web.xml文件的部分內(nèi)容:

<security-constraint> <web-resource-collection> <web-resource-name>ServletApplication  web-resource-name> <url-pattern>/*url-pattern> web-resource-collection> <auth-constraint> <role-name>ttrolerole-name> auth-constraint> <user-data-constraint> <transport-guarantee>CONFIDENTIAL  transport-guarantee> user-data-constraint> security-constraint> <login-config> <auth-method>BASICauth-method> <realm-name>defaultrealm-name> login-config> <security-role> <role-name>ttrolerole-name> security-role>

在上述的例子中,只有用戶"ttrole"才能訪問Servlet和JSP頁。

在JavaEE環(huán)境中將使用這些用戶驗證,但在許多操作系統(tǒng)環(huán)境中,用戶和組關(guān)聯(lián)。因此,security-role-mapping在用戶頭組之間提供了一座橋梁。在JavaEE5應(yīng)用服務(wù)器中,我們可以在sun-application.xml文件中按如下的方式字義security-role-mapping標(biāo)簽:

<sun-application> <security-role-mapping> <role-name>myrolerole-name> <principal-name>myuserprincipal-name> security-role-mapping> <security-role-mapping> <role-name>ttrolerole-name> <group-name>ttgroupgroup-name> security-role-mapping> <security-role-mapping> <role-name>arolerole-name> <principal-name>ttuserprincipal-name> security-role-mapping> sun-application>

二、運行實例代碼

在這一節(jié)我們來講一下如何運行上面的程序。在這里我們使用的集成開發(fā)環(huán)境是NetBeansIDE5.5以及NetBeans企業(yè)開發(fā)包。在安裝完NetBeans后,我們需要進(jìn)行以下幾步來運行這個程序。

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

2.啟動NetBeans。

3.打開webann工程(剛才zip文件中的NetBeans工程),如果出現(xiàn)一個"Resolvemissingserverproblem"提示信息,說明應(yīng)用服務(wù)器還沒有被加到NetBeans的服務(wù)器列表中。我們可以選擇Tools>ServerManager,然后將相應(yīng)的服務(wù)器加到列表中。

4.啟動Sun內(nèi)嵌在NetBeans中的JavaSystemApplicationServer。我們還可以通過在命令中輸入如下的命令來啟動服務(wù)器:
/bin/asadminstart-domaindomain1
上面的是應(yīng)用服務(wù)器的安裝目錄。

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

在建立***個用戶后,使用同樣的方式建立第二個用戶ttusers2,輸入信息如下:

UserId:ttuser2
GroupList:ttgroup
NewPassword:ttpassword
ConfirmNewPassword:ttpassword

6.按著以下步驟編譯NetBeans工程:
(1)右擊工程窗口的webann節(jié)點。
(2)選擇"CleanandBuildProject"。

在這個步驟中將建立ear文件,并將它們放到webann/dist目錄中。

7.按著以下步驟發(fā)布ear文件:
(1)右擊工程中的webann節(jié)點。
(2)選擇"DeployProject"。

除了上述的發(fā)布方法,我們還可以按以下的方式通過管理界面發(fā)布:
(1)在左側(cè)的控制樹中選擇Applications>EnterpriseApplications。
(2)單擊"Deploy"。
(3)單擊"Browser"按鈕找到ear文件
(4)單擊"OK"。

我們還可以通過如下的命令行發(fā)布ear文件:
asadmindeploywebann.ear

8.下面我們啟動瀏覽器,在地址欄中輸入https://:<PORT webann,在這里是主機(jī)名,如果是本機(jī),就是"localhost",是HTTPS的端口,如8181。

可能由于瀏覽器的不同,所看到的驗證信息不同,但一般會出現(xiàn)一個"unknownauthority",這是因為這個例子使用了self-sign驗證。然后瀏覽器將會出現(xiàn)一個選項,提示您是否繼續(xù)瀏覽應(yīng)用程序。

如果我們選擇繼續(xù)瀏覽應(yīng)用程序,系統(tǒng)將會提示我們輸入用戶名和密碼。如果我們使用ttuser登錄,將會看到類似如下的響應(yīng)信息:
Hello,ttuser
EjbMessage:Hello,World,SatJun3012:04:46PDT2007
DataSourcelogintimeout:0

如果我們使用ttuser2登錄,將會看到類似如下的響應(yīng)信息:
Hello,ttuser2
DataSourcelogintimeout:0

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

當(dāng)我們運行完這個程序后,可以按著如下的步驟卸載ear文件:
1.通過管理界面面卸載ear文件。
(1)在左側(cè)的功能樹中選擇Applications>EnterpriseApplications
(2)選擇"webann",然后單擊"Undeploy"。

2.通過管理界面面刪除用戶。
(1)選擇Configuration>Security>Realmn>file
(2)單擊"ManageUsers"。
(3)選擇ttuser和ttuser2。
(4)單擊"Delete"。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Servlet和JSP安全問題的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI