現Web應用程序的安全機制是Web應用程序的設計人員和編程人員必須面對的任務。在J2EE中,Web容器支持應用程序內置的安全機制。
Web應用程序的安全機制有二種組件:認證和授權。基于J2EE的Web容器提供三種類型的認證機制:基本認證、基于表單的認證、相互認證。由于能夠對認證用戶界面進行定制,大多數的Web應用程序都使用基于表單的認證。Web容器使用在Web應用程序的部署描述符中定義的安全角色對應用程序的Web資源的訪問進行授權。
在使用基于表單的認證機制中,應用程序的設計人員和開發人員會碰到3類問題:
1、基于表單的認證如何與數據庫和LDAP等其他領域的安全機制協同工作。(這是非常必要的,因為許多組織已經在數據庫和LDAP表單中實現了認證機制。)
2、如何在Web應用程序的部署描述符(web.xml)中增加或刪除軍政府的授權角色。
3、Web容器在Web資源層次上進行授權;應用程序則需要在單一的Web資源中執行功能層次上的授權。盡管有許多與基于表單的認證有關的文檔和例子,但都沒有能夠闡明這一問題。因此,大多數的應用程序都以自己的方式表達安全機制。
本篇文章說明了基于表單的認證如何與其他方面的安全機制,尤其是數據庫中的安全機制協作的問題。它還解釋了Web窗口如何使用安全角色執行授權以及應用程序如何擴展這些安全角色,保護Web資源中的功能。
基于表單的認證
基于表單的認證能夠使開發人員定制認證的用戶界面。web.xml的login-config小節定義了認證機制的類型、登錄的URI和錯誤頁面。
<login-config><auth-method>FORM</auth-method><form-login-config><form-login-page>/login.jsp</form-login-page><form-error-page>/fail_login.Html</form-error-page></form-login-config></login-config>
<form method="POST" action="j_security_check"><input type="text" name="j_username"><input type="password" name="j_password"></form>
除非所有的連接都是在SSL上實現的,該表單能夠透露用戶名和口令。當受保護的Web資源被訪問時,Web容器就會激活為該資源配置的認證機制。
為了實現Web應用程序的安全,Web容器執行下面的步驟:
1、在受保護的Web資源被訪問時,判定用戶是否被認證。
2、假如用戶沒有得到認證,則通過重定向到部署描述符中定義的注冊頁面,要求用戶提供安全信任狀。
3、根據為該容器配置的安全領域,確認用戶的信任狀有效。
4、判定得到認證的用戶是否被授權訪問部署描述符(web.xml)中定義的Web資源。
就如基本的安全認證機制那樣,在Web應用程序的部署描述符中,基于表單的認證不指定安全區域。也就是說,它不明確地定義用來認證用戶的安全區域類型,這就會在它使用什么樣的安全區域認證用戶方面引起混淆。
現Web應用程序的安全機制是Web應用程序的設計人員和編程人員必須面對的任務。在J2EE中,Web容器支持應用程序內置的安全機制。
Web應用程序的安全機制有二種組件:認證和授權?;贘2EE的Web容器提供三種類型的認證機制:基本認證、基于表單的認證、相互認證。由于能夠對認證用戶界面進行定制,大多數的Web應用程序都使用基于表單的認證。Web容器使用在Web應用程序的部署描述符中定義的安全角色對應用程序的Web資源的訪問進行授權。
在使用基于表單的認證機制中,應用程序的設計人員和開發人員會碰到3類問題:
1、基于表單的認證如何與數據庫和LDAP等其他領域的安全機制協同工作。(這是非常必要的,因為許多組織已經在數據庫和LDAP表單中實現了認證機制。)
2、如何在Web應用程序的部署描述符(web.xml)中增加或刪除軍政府的授權角色。
3、Web容器在Web資源層次上進行授權;應用程序則需要在單一的Web資源中執行功能層次上的授權。盡管有許多與基于表單的認證有關的文檔和例子,但都沒有能夠闡明這一問題。因此,大多數的應用程序都以自己的方式表達安全機制。
本篇文章說明了基于表單的認證如何與其他方面的安全機制,尤其是數據庫中的安全機制協作的問題。它還解釋了Web窗口如何使用安全角色執行授權以及應用程序如何擴展這些安全角色,保護Web資源中的功能。
基于表單的認證
基于表單的認證能夠使開發人員定制認證的用戶界面。web.xml的login-config小節定義了認證機制的類型、登錄的URI和錯誤頁面。
<login-config><auth-method>FORM</auth-method><form-login-config><form-login-page>/login.jsp</form-login-page><form-error-page>/fail_login.html</form-error-page></form-login-config></login-config>
<form method="POST" action="j_security_check"><input type="text" name="j_username"><input type="password" name="j_password"></form>
新聞熱點
疑難解答