控制客戶端訪問是開發一個基于B/S的架構的系統的開發者必須考慮的問題。jsp或SERVLET規范的基于配置文件的安全策略對資源的控制是以文件為單位的,即只可以定義某個視圖全部可以或全部不能被訪問。一個比較復雜的系統往往要要求對視圖的一部分(如JSP頁面里的一個按鈕)提供訪問控制,只允許被某種角色的用戶訪問。如果采用可編程的安全策略,因為對用戶角色和操作的定義在開發時不能定義,而且這種策略加大了程序員的工作量,它可能不是一種好的辦法。
我采用定制標簽庫和和配置文件來解決這個問題:把要權限控制的JSP頁面元素如BUTTON,作為標簽的內容。為受保護的內容起一個唯一的名稱,把這個名稱作為標簽的一個屬性。某個角色對某個頁面元素或一組頁面元素是否有權限,在xml配置文件中描述。
例如,下面的JSP頁面有“詳細”和“修改”兩個按鈕。
<%@ taglib uri="http://mytag" PRefix="custTag" %>
<html>
<head>
<title>test</title>
</head>
<body >
<form name="form1" >
<table width="600" border="0" cellspacing="0" cellpadding="2" >
<tr>
<td>
<custTag:JspSecurity elementName="employeedetail" >
<input type="button" name="detail" value="詳細" >
</custTag:JspSecurity>
<custTag:JspSecurity elementName="employeemodify" >
<input type="button" name="modify"
新聞熱點
疑難解答