控制客户端访问是开发一个基于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"
新闻热点
疑难解答